解决方案:此表不包含唯一列.网格编辑,复选框,编辑,复制和删除功能不可用

Old*_*est 55 php mysql database phpmyadmin

这不是一个问题,而是我发现的自生问题/问题和解决方案.我认为分享是不错的礼貌,因为我找不到完整的工作解决方案.

phpMyAdmin中生成的错误是:

"此表格不包含唯一列.网格编辑,复选框,编辑,复制和删除功能不可用."

根据您的具体情况,有几种可行的解决方案.

例如,只要您的所有AI或唯一标识符字段都是唯一的,您就可以简单地更改表并确保这是主键并设置为唯一值.

我在其中一张桌子上用这个解决方案解决了这个问题.

另一个表有多个AI int值,它们是Primary字段,但是有多个相同类型的值.

对此的简单修复就是将一列添加到表的末尾,作为Unique AI Int.基本上所有MySQL都说它需要在每条记录中使用唯一值来区分行.

希望这有用.

nhu*_*uvy 36

我一直面临这个问题.

原因是您的表没有主键字段.

我有一个简单的解决方案:将字段设置为适合您的业务逻辑的特定字段的主键.

例如,我有数据库thesis_db和字段thesis_id,我将按下按钮Primary(键图标)设置thesis_id为主键字段:

在此输入图像描述


dr *_*chu 20

这不是错误.PhpMyAdmin只是通知您,结果集中没有唯一的ID列.根据您发送的查询类型,这是所需的行为.

MySQL并不是说它需要一个唯一的ID,如果结果集中任何列的组合是唯一的,那么这些列的值可以在UPDATE或DELETE查询中使用.phpMyAdmin表示它没有足够的信息为您提供通常在具有唯一ID的结果集中看到的复选框和按钮.

  • 您的结果可能是唯一的,但结果中的列不是唯一的。假设您有 2 列 A 和 B,其中 A 是唯一的,而 B 不是,您可以执行以下操作: SELECT `B` FROM `table` WHERE `A`='some value,那么您的结果仅从列返回B,这不是唯一的。从那里 PhpMyAdmin 无法为您提供编辑选项,因为您无法区分结果中的一行和另一行。 (2认同)

Rav*_*avi 12

我的情况不同.此问题仅适用于PHPMyAdmin.我下载了几个其他管理工具(Adminer,MySQLWorkbench,HeidiSQL等),同样的数据库在所有这些工作中都运行良好.

我已经定义了所有索引,主键和唯一键,但仍然会收到错误.我升级到MySQL 5.6之后得到了这个(与以前的版本不同).

事实证明,PMA在资本中存在表名称的问题.PMA无法识别具有大写表名称的密钥.一旦我将它们更改为小(ALTER TABLE mytable ENGINE=INNODB- 我使用INNODB - 为每个表执行此操作而不更改任何其他内容),我能够正常访问.我在使用UniformServer的Windows系统上.


Isa*_*dni 12

只需创建一个新列,将其设置Name为您喜欢的任何内容,设置TypeINT选中显示的框A_I.

图A_I复选框表示AUTO_INCREMENT,这实质上意味着序列号在该新列自动分配(见下文).

 column1 | column2 | id
-----------------------
 value   | value   | 1
-----------------------
 value   | value   | 2
-----------------------
 value   | value   | 3
-----------------------
 value   | value   | 4
Run Code Online (Sandbox Code Playgroud)

此列基本上充当phpMyAdmin从中删除行的参考.如有必要,请单击此新列的唯一按钮,尽管这对我来说是自动发生的.执行上述步骤后,您将不再出现错误消息,并且应该出现用于在phpMyAdmin中编辑行的按钮!


Ave*_*Joe 6

这就是您摆脱该通知并能够打开这些网格单元进行编辑的方法

1)点击“结构”

2) 转到您想要作为主键的字段(通常是第一个字段),然后单击该字段的“PRIMARY”和“INDEX”字段,并接受 PHPMyadmin 的弹出问题“确定”。

3)垫在后面。