即使表包含唯一/主键,也无法使用phpMyAdmin进行内联编辑

时间:2016-03-11 21:19:47

标签: phpmyadmin

我永远无法通过phpMyAdmin(版本4.5.5.1)在我的数据库中编辑一行(内联或单击编辑按钮),因为错误“此表不包含唯一列。与网格编辑相关的功能保存后,复选框,编辑,复制和删除链接可能无效。“ SQL显示为具有空的“WHERE”子句。我已经完成并仔细检查过我确实有主键,甚至添加了一个额外的“唯一”键,但我仍然得到错误。

如果我使用phpMyAdmin(版本4.5.3.1)从不同的站点复制来自不同数据库的表,我实际上在这个特定数据库中的每个表上都会出现此错误 HOWEVER )使用导出功能,我可以让它工作!在phpMyAdmin中从头开始创建表时,我是否缺少某些内容?

导出表格结构:

CREATE TABLE 'userAccessLevel' (
  'userAccessLevelID' int(11) NOT NULL,
  'userAccessLevel' varchar(50) COLLATE utf8_unicode_ci NOT NULL,
  'description' text COLLATE utf8_unicode_ci,
  'title' varchar(50) COLLATE utf8_unicode_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

ALTER TABLE 'userAccessLevel'
  ADD PRIMARY KEY ('userAccessLevelID'),
  ADD UNIQUE KEY 'userAccessLevelID' ('userAccessLevelID');

ALTER TABLE 'userAccessLevel'
  MODIFY 'userAccessLevelID' int(11) NOT NULL AUTO_INCREMENT;

1 个答案:

答案 0 :(得分:0)

  1. 在表名称中使用所有小写字母。复制该表(如果已存在)为临时名称,删除旧表,然后将新表重命名为旧名称。

由于 lower_case_table_names 设置与OS设置冲突(Windows不区分大小写),因此在Windows上这种情况最可能发生,并且最常见。

您可以设置 lower_case_table_names ,但是根据authoritative site

  

lower_case_table_names 只能在初始化   服务器。服务器后更改lower_case_table_names设置   禁止初始化。