【问题标题】:Table with no unique column in phpMyAdminphpMyAdmin 中没有唯一列的表
【发布时间】:2014-03-02 03:17:57
【问题描述】:

这是我的桌子:

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,一个vfile_id也可以被多个editor_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 AND vfile_id 的值时,行是唯一的,而单独的列都不是唯一的。

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

`ID` int(11) NOT NULL AUTO_INCREMENT,

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

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

【问题讨论】:

标签: mysql phpmyadmin


【解决方案1】:

如果您绝对确定可以创建 (editor_id, vfile_id) 的唯一主复合键,请继续这样做。

 ALTER TABLE group_edits ADD PRIMARY KEY (editor_id, vfile_id)

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

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

【讨论】:

猜你喜欢
  • 2020-05-10
  • 2014-02-16
  • 2014-06-12
  • 1970-01-01
  • 1970-01-01
  • 2021-07-23
  • 2020-02-22
  • 1970-01-01
  • 2014-02-18
相关资源
最近更新 更多