Phpmyadmin 此表不包含唯一的列。栅格编辑、复选框、编辑、复制和删除功能不可用

Phpmyadmin 此表不包含唯一的列。栅格编辑、复选框、编辑、复制和删除功能不可用,phpmyadmin,Phpmyadmin,phpMyAdmin中生成的错误为: 此表不包含唯一的列。栅格编辑、复选框、编辑、复制和删除功能不可用 此错误消息的含义是什么?我如何修复它?这不是错误。PhpMyAdmin只是通知您,结果集中没有唯一的ID列。根据您发送的查询类型,这是所需的行为 不是MySQL说它需要一个唯一的ID,如果结果集中的任何列的组合都是唯一的,那么这些列的值可以在更新或删除查询中使用。是phpMyAdmin说它没有足够的信息提供给您在具有唯一ID的结果集中通常会看到的复选框和按钮。我最近也遇到了同样的问题,在查找重

phpMyAdmin中生成的错误为:

此表不包含唯一的列。栅格编辑、复选框、编辑、复制和删除功能不可用


此错误消息的含义是什么?我如何修复它?

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


不是MySQL说它需要一个唯一的ID,如果结果集中的任何列的组合都是唯一的,那么这些列的值可以在更新或删除查询中使用。是phpMyAdmin说它没有足够的信息提供给您在具有唯一ID的结果集中通常会看到的复选框和按钮。

我最近也遇到了同样的问题,在查找重复项后,我只需在表上设置缺少的主键就可以修复它。希望这能有所帮助

我一直面临着这个问题。 原因是您的表没有主键字段。 我有一个简单的解决方案:将一个字段设置为主键,以指定适合您的业务逻辑的字段。 例如,我有数据库论文数据库和字段论文id,我会按按钮主键图标将论文id设置为主键字段:

这个问题帮助我确定了为什么phpMyAdmin在某些表上拒绝我使用grid-edit-etc的问题。我只是忘记声明我的主键,并在我的数据库中监督它,为什么这个表应该与它的邻居的解决方案搜索过程不同

我只想在OP自我回答中对以下内容做出反应:

另一个表有多个AI int值,它们是主要的 字段,但存在多个相同类型的值

解决这个问题的简单方法是只在 表作为唯一的AI Int。基本上MySQL所说的就是它需要一个 每个记录中用于区分行的唯一值

这实际上是我的情况,但绝对不需要添加任何列:如果主键是多对多关系中的两个字段(例如连接表)的组合,则只需将其声明为: -在phpyAdmin中,只需在[x]列上创建索引中输入2,然后选择2列
-或者ALTER TABLE mytable ADD PRIMARY KEYCL1,myCL2

我在运行查询后试图直接修改时遇到了这个错误。事实证明,在根据完全相同的查询创建视图后,我能够修改值。

我的情况不同。此问题仅针对PHPMyAdmin。我下载了另外两个管理工具Adminer、MySQLWorkbench、HeidiSQL等,同一个db在所有这些工具中都可以正常工作

我已经定义了所有索引、主键和唯一键,但仍然得到了错误。我是在升级到MySQL 5.6后得到这个消息的,与以前的版本不一样


原来PMA在大写的表名上有问题。PMA无法识别具有大写表格名称的键。一旦我将它们更改为小ALTER TABLE mytable ENGINE=INNODB——我使用INNODB——在不更改任何其他内容的情况下对每个表执行该操作,我就能够正常访问。我在使用UniformServer的Windows系统上。

只需创建一个新列,将名称设置为任意名称,将类型设置为INT,然后选中表示a_I的框

A_I复选框代表自动递增,这本质上意味着序列号在新列中自动分配,见下文

 column1 | column2 | id
-----------------------
 value   | value   | 1
-----------------------
 value   | value   | 2
-----------------------
 value   | value   | 3
-----------------------
 value   | value   | 4

此列实质上充当phpMyAdmin从中删除行的引用。如有必要,单击此新列的“唯一”按钮,尽管这对我来说是自动发生的。完成上述步骤后,您将不会再收到错误消息,并且将显示用于在phpMyAdmin中编辑行的按钮

一个简单的解决方法是转到SQL选项卡,只需输入代码即可

ALTER TABLE `tablename`
ADD PRIMARY KEY (`id`);

假设您有一个名为id的行。

在我的例子中,当我将小写字母设置为table,并且表名为大写字符时,phpmyadmin版本4.5.1中发生了错误,表的主键设置为auto increment,但仍然显示了错误。当我将表名更改为全小写时,问题就停止了。

每当我对特定列启动SELECT查询时,我都会遇到同样的问题,尽管该列中的一列是表中的主列。我试图在标准wordpress posts表中获取具有选择性列的选择性记录。ID列已为主列且唯一

仅指定主/唯一列名无法解决此问题。您必须指定完整的列名,如posts.id tablename.columnname,告诉PMA选择特定列并显示编辑等


我的PMA是4.3.8。让我知道这是否有帮助。

为我工作的代码

ALTER TABLE `table name`
ADD COLUMN `id` INT NOT NULL AUTO_INCREMENT,
ADD PRIMARY KEY (`id`);

对我来说,这是通过从中重新导出数据来解决的
原始源数据库,然后将其导入镜像数据库。

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

一键式结构

2转到您想要成为主键的字段,这通常是第一个字段,然后单击该字段的主字段和索引字段,并接受PHPMyadmin的弹出式问题OK

3把你自己放在后面。

在config.inc.php文件中添加这个在最后一行$cfg下对我有效:

$cfg['RowActionLinksWithoutUnique']='true'


该文件应位于本地计算机上的phpMyAdmin文件夹中

确保所有表都有一个主键。我忘记在一个表中添加主键,这为我解决了这个问题:

我一直面临着这个问题

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

我有一个简单的解决方案:将一个字段设置为与您的业务逻辑相适应的特定字段的主键。
例如,我有数据库论文数据库和字段论文id,我会按下按钮主键图标,将论文id设置为主键字段

这当然是一个老话题,但我想增加声音,以裁剪新想法。

要解决讨论中的警告问题,您只需将一个表列设置为主键约束。

请拆分您的问题,然后回答您自己的问题。请确保表名小写。。。我同意nonybrighto的观点,在你彻底地考虑问题并开始添加主键之前,首先要确保它们都是小写的。它对我起了作用,过去也起过好几次作用。PHPMyAdmin的最新版本似乎比旧版本受到的影响更大。如果您导入了任何数据,并且由于任何原因遇到兼容性问题,并且导入被中断,则需要另一个附加模块。您可能错过了SQL导入文件底部的一些表alter查询。在那里检查并查看您要查找的指定是否在尝试主键等的批量指定之前要导入的文件中。对于正确的问题,这是一个极好的解决方案。导入大量数据时务必小心。检查并重新检查。如何创建唯一id?我有一个返回唯一结果的搜索查询,但我仍然无法像以前那样进行编辑。您的结果可能是唯一的,但结果中的列不是唯一的。假设您有两列A和B,其中A是唯一的,B不是唯一的,您可以这样做:从表A='some value'中选择B,然后您的结果只从B列返回,B列不是唯一的。因此,PhpMyAdmin无法为您提供编辑选项,因为您无法区分结果中的一行和另一行。上面的代码显示不正确。找不到如何获取反勾号,因为代码也有反勾号标记。抱歉。如果表包含一个主键,则可能是解决方案。如果您有一个仅包含外键的connecter表,则它们不可能是主键和/或唯一键。phpMyAdmin根据主键更新where子句,但是您可以添加多个选项并手动执行。@gramgram,您的注释很有帮助。我们还添加了2个或多个外键。我们还使用SQL语句设置主键或外键组合。对于没有唯一字段的表,这对我很有帮助:在我的情况下,使用自动递增id作为主键不起作用。我不得不用护照号码作为主键。警告在那之后就消失了。我也有同样的问题。我无法更改表名。有没有其他方法可以纠正这个问题?尝试使用其他选项之一,如HeidiSQL。我在WAMP中更改了名称,但在Linux主机上没有更改!现在一切都可以正常工作,无需更改代码。名字在我的代码上是大写的。回答得好,这对我也有帮助。应标记为正确答案:我得到1075-表定义不正确;只能有一个自动列,必须将其定义为键。这是一个非常危险的选项。如果真的没有唯一的行,更新或删除很容易影响整个表。完美的答案是不涉及危险的配置更改。