这是我的表:
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?
答案 0 :(得分:5)
如果您完全确定可以创建(editor_id,vfile_id)的唯一主要复合键,请继续执行此操作。
ALTER TABLE group_edits ADD PRIMARY KEY (editor_id, vfile_id)
首先使用phpmyadmin转储表的副本是明智的,这样如果搞砸了就可以恢复它。
这应该允许phpmyadmin让你更新表中的行。