12

我的服务器管理员刚刚将 PHPMyAdmin 升级到 v4.0.4.2。

现在我无法编辑下表中的行:

CREATE TABLE IF NOT EXISTS `product_options` (
  `product_id` int(10) NOT NULL,
  `option_id` int(10) NOT NULL,
  KEY `product_id` (`product_id`,`option_id`)
)

当我浏览表中的数据时,PHPMyAdmin 只会返回此错误消息:

This table does not contain a unique column. Grid edit, checkbox, Edit, Copy and Delete features are not available.

我不想在这个表中有一个唯一的列,那么我该如何编辑数据呢?有可以更改的设置吗?

非常感谢

MySQL v5.1.70

编辑/解决方案

我意识到它不一定是一个新的unique columnPHPMyAdmin 想要我创建,而是一个unique index. 这意味着我的表的结构不必改变——我只需要添加一个唯一索引,无论如何我都应该这样做。

4

7 回答 7

18

如果没有唯一键,就无法区分可能存在的两条相同记录。因此 phpMyAdmin 无法安全地编辑表格 - 您不知道其中哪些最终会被编辑。你真的想在这个表中有重复的记录吗?

于 2013-08-15T13:15:57.173 回答
13

您所要做的就是添加一个唯一的列,例如一个名为 id 的列,其索引 = PRIMARY 就像图片一样,或者如果您已经有一个称为 id 的数字,只需将其设为 PRIMARY

在此处输入图像描述

于 2013-08-29T17:56:11.103 回答
3

您只需添加一个名称为“id”的字段,然后检查 A_I 选项。

于 2013-10-11T13:14:10.147 回答
1

我找到了一个将来可能对某人有帮助的解决方案,我有一个带有 id 的表,它不是主键也不是自动递增,我添加了temp列,使其成为主键并自动递增,然后我编辑了 id 列,然后我删除了该temp列,之后我改为id主要和自动增量

于 2016-05-11T05:15:54.073 回答
1

根据我的经验,您有两个以上的主键,或者您没有任何主键。

于 2018-08-18T03:28:01.583 回答
1

我遇到过同样的问题。在我自己的情况下,我已经有一个 id 列。我删除了该列并重新创建了它;这次我把它设为主键并勾选 A_I(即自动增量)。一切都很顺利。

注意:只有在更改 ID 不会影响您的工作时,您才能执行此操作。

于 2017-12-07T21:02:21.627 回答
0

在检查AUTO_INCREMENT选项之前,请检查该列是否INTVARCHAR.

于 2014-03-03T20:01:27.910 回答