这是我的表:
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_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.
现在它让我觉得这样的桌子有什么问题吗?当您获取editor_id和vfile_id的值时,行是唯一的,而单独的列都不是唯一的.
我知道要修复它我可以添加
`ID` int(11) NOT NULL AUTO_INCREMENT,
但它并不反映我的数据库架构的设计,我想避免添加技巧只是为了使phpMyAdmin工作.
我的数据库设计是错误的还是phpMyAdmin?
如果您完全确定可以创建(editor_id,vfile_id)的唯一主复合键,请继续执行此操作.
ALTER TABLE group_edits ADD PRIMARY KEY (editor_id, vfile_id)
你最好先使用phpmyadmin转储表的副本,这样你就可以恢复它了.
这应该允许phpmyadmin让你更新表中的行.