在尝试在MySQL中转储和恢复WordPress数据库时,我注意到mysqldump似乎正在将多个表上的PRIMARY KEY改为UNIQUE KEY。例如,以下表格:
mysql> describe wp_yoast_seo_meta;
+---------------------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------------+---------------------+------+-----+---------+-------+
| object_id | bigint(20) unsigned | NO | PRI | NULL | |
| internal_link_count | int(10) unsigned | YES | | NULL | |
| incoming_link_count | int(10) unsigned | YES | | NULL | |
+---------------------+---------------------+------+-----+---------+-------+被倾倒为:
CREATE TABLE `wp_yoast_seo_meta` (
`object_id` bigint(20) unsigned NOT NULL,
`internal_link_count` int(10) unsigned DEFAULT NULL,
`incoming_link_count` int(10) unsigned DEFAULT NULL,
UNIQUE KEY `object_id` (`object_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;注意,object_id字段用于创建UNIQUE_KEY索引,而不是设置为PRIMARY KEY。除了指定主机名和用户名之外,我不会对mysqldump使用任何特殊的选项。
如何让mysqldump包含主键?
发布于 2019-05-24 21:22:01
在MyISAM中,PRIMARY和UNIQUE之间没有实现上的区别。(我不知道它为什么会这么做。)
您应该升级到InnoDB。
https://dba.stackexchange.com/questions/239020
复制相似问题