表没有phpMyAdmin中的唯一列

Pee*_*ech 4 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;
Run Code Online (Sandbox Code Playgroud)

没有唯一索引,因为一个editor_id可以编辑多个vfile_id,也可以通过多个editor_id编辑一个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.
Run Code Online (Sandbox Code Playgroud)

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

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

`ID` int(11) NOT NULL AUTO_INCREMENT,
Run Code Online (Sandbox Code Playgroud)

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

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

O. *_*nes 5

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

 ALTER TABLE group_edits ADD PRIMARY KEY (editor_id, vfile_id)
Run Code Online (Sandbox Code Playgroud)

你最好先使用phpmyadmin转储表的副本,这样你就可以恢复它了.

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