这真令人讨厌,我在导入数据库时遇到过这个问题很多次: https://i.gyazo.com/8051625ceaa6f2e00212a134a96a485e.png
因为它没有唯一列,所以我无法删除行。因为我无法删除行,所以我无法分配唯一列,因为我无法删除该列的重复条目行(ID = 0的行)。
我无法记住以前是如何解决这个问题的。我不知道这个问题是怎么发生的,我认为默认情况下wp_options表在ID列上会有一个唯一的键。
答案 0 :(得分:0)
啊,对不起解决方案非常简单。 PHPMyAdmin只是阻止您通过GUI删除行,但删除行的SQL查询仍然有效。我通过进入SQL选项卡并运行DELETE FROM wp_options WHERE option_id = '0';
答案 1 :(得分:0)
我也遇到过这个问题,并且想到了同样的事情(注意:它不仅仅是wp_options表 - 你也会在其他表上遇到问题!)
问题在于处理导出/导入的方式。
有一个微妙的自动增量" phpMyAdmin界面中的某个复选框,用于在"对象创建"下导出。选项:
注意:一旦您导出/导入,并发现自己正在处理此问题,我提出的解决问题的最简单方法是:
AUTO_INCREMENT
。PRIMARY KEY
索引。答案 2 :(得分:0)
我弄清楚导致问题的原因。导入SQL文件时,导入其中一个表的其中一个键时出错。结果,它在此之后跳过了每个键的导入,而option_id唯一键是它跳过的键之一。所以是的,你是对的,问题也发生在很多其他的桌子上。解决方案是从.sql文件导入其余的键和索引。
我的意思是:
-
wp_links
ALTER TABLE wp_links
添加主要密钥(link_id
),添加密钥link_visible
(link_visible
);
-
wp_options
ALTER TABLE wp_options
添加PRIMARY KEY(option_id
),添加唯一键option_name
(option_name
),添加键wpe_autoload_options_index
(autoload
);
我忘记在导入新数据库表之前删除wp_links表,因此它无法创建link_id主键,因为它已经存在。结果,在该文件之后出现的每个键都被跳过了。