PHPMyAdmin - 从表中删除没有唯一列的行

时间:2016-01-01 19:05:34

标签: wordpress

这真令人讨厌,我在导入数据库时​​遇到过这个问题很多次: https://i.gyazo.com/8051625ceaa6f2e00212a134a96a485e.png

因为它没有唯一列,所以我无法删除行。因为我无法删除行,所以我无法分配唯一列,因为我无法删除该列的重复条目行(ID = 0的行)。

我无法记住以前是如何解决这个问题的。我不知道这个问题是怎么发生的,我认为默认情况下wp_options表在ID列上会有一个唯一的键。

3 个答案:

答案 0 :(得分:0)

啊,对不起解决方案非常简单。 PHPMyAdmin只是阻止您通过GUI删除行,但删除行的SQL查询仍然有效。我通过进入SQL选项卡并运行DELETE FROM wp_options WHERE option_id = '0';

删除了这些重复的行

答案 1 :(得分:0)

我也遇到过这个问题,并且想到了同样的事情(注意:它不仅仅是wp_options表 - 你也会在其他表上遇到问题!)

问题在于处理导出/导入的方式。

有一个微妙的自动增量" phpMyAdmin界面中的某个复选框,用于在"对象创建"下导出。选项:

phpMyAdmin Export Options

注意:一旦您导出/导入,并发现自己正在处理此问题,我提出的解决问题的最简单方法是:

  1. 创建一个标题为' new_ID'的新列,将其设为AUTO_INCREMENT
  2. 然后, 一个。运行查询以将现有ID列更新为new_ID值,或者 湾删除现有ID列,然后重命名' new_ID'正确的名称,并添加PRIMARY KEY索引。

答案 2 :(得分:0)

我弄清楚导致问题的原因。导入SQL文件时,导入其中一个表的其中一个键时出错。结果,它在此之后跳过了每个键的导入,而option_id唯一键是它跳过的键之一。所以是的,你是对的,问题也发生在很多其他的桌子上。解决方案是从.sql文件导入其余的键和索引。

我的意思是:

-

- 表wp_links

的索引

ALTER TABLE wp_links  添加主要密钥(link_id),添加密钥link_visiblelink_visible);

-

- 表wp_options

的索引

ALTER TABLE wp_options  添加PRIMARY KEY(option_id),添加唯一键option_nameoption_name),添加键wpe_autoload_options_indexautoload);

我忘记在导入新数据库表之前删除wp_links表,因此它无法创建link_id主键,因为它已经存在。结果,在该文件之后出现的每个键都被跳过了。