表没有phpMyAdmin中的唯一列

时间:2014-02-05 15:35:13

标签: mysql phpmyadmin

这是我的表:

CREATE TABLE group_edits (
  vfile_id bigint(20) unsigned NOT NULL,
  editor_id int(10) unsigned NOT NULL,
  edits text
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

没有唯一索引,因为一个editor_id可以编辑多个vfile_id,也可以通过多个editor_ids编辑一个vfile_id。

phpMyAdmin 4.1.6不允许我编辑此表说:

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

现在它让我觉得这样的桌子有什么问题吗?当您获取editor_id和vfile_id的值时,行是唯一的,而单独的列都不是唯一的。

我知道要修复它我可以添加

`ID` int(11) NOT NULL AUTO_INCREMENT,

但它并不反映我的数据库架构的设计,我想避免添加技巧只是为了使phpMyAdmin工作。

我的数据库设计错了还是phpMyAdmin?

1 个答案:

答案 0 :(得分:5)

如果您完全确定可以创建(editor_id,vfile_id)的唯一主要复合键,请继续执行此操作。

 ALTER TABLE group_edits ADD PRIMARY KEY (editor_id, vfile_id)

首先使用phpmyadmin转储表的副本是明智的,这样如果搞砸了就可以恢复它。

这应该允许phpmyadmin让你更新表中的行。