无法使用PHPMyAdmin删除行

时间:2016-04-10 09:10:24

标签: phpmyadmin

我在Mac上使用PHPMyAdmin 4.6.0(当前稳定版)来管理MySQL表。我创建了一个包含以下模式的表:

CREATE TABLE `table1` (
  `id` int(11) NOT NULL,
  `name` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
  `table2id` int(11) NOT NULL,
  `col2` float DEFAULT NULL,
  `col3` float DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

ALTER TABLE `table1`
  ADD PRIMARY KEY (`id`),
  ADD KEY `fk_table1_table2` (`table2id`);

ALTER TABLE `table1`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

当从table1查看数据时,我使用左侧的复选框选择一些行,然后按表下方的删除链接。我被重定向到另一个页面,显示要执行的以下SQL查询:

DELETE FROM `table1` WHERE ;
DELETE FROM `table1` WHERE ;
DELETE FROM `table1` WHERE ;

请注意,此处缺少数据集的ID,导致查询失败。如果按下"删除"会发生类似情况。一排内的按钮。出现一个模态,显示以下输出:

Do you really want to execute "DELETE FROM `table1` WHERE LIMIT 1"?

请注意,此处也缺少WHERE子句。然而,它适用于另一个数据库中的不同表,甚至同一数据库中的另一个表。例如,另一个表具有以下模式:

CREATE TABLE `table3` (
  `id` int(11) NOT NULL,
  `name` varchar(70) COLLATE utf8_unicode_ci DEFAULT NULL,
  `shortname` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

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

ALTER TABLE `table3`
   MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

实际上,我在这里看不到会导致PHPMyAdmin这种行为的任何区别。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

UPDATE - phpMyAdmin 4.6.6修复了这个错误。

How to upgrade phpMyAdmin in XAMPP to latest?

原始邮寄

我可以在我的环境中重现错误,但不能在demo.phpmyadmin.net上重现错误。如果您的InnoDB或MyISAM表名称在任何位置具有任何大写字符,如下所示,则可能存在此问题。我在运行phpMyAdmin版本4.5.2,10.1.1的Mac上运行XAMPP - MariaDB - 源代码发布,PHP版本5.6.28。

CREATE TABLE `MyTable1` (
  `id` int(11) NOT NULL,
  `name` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
  `table2id` int(11) NOT NULL,
  `col2` float DEFAULT NULL,
  `col3` float DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

ALTER TABLE `MyTable1`
  ADD PRIMARY KEY (`id`),
  ADD KEY `fk_MyTable1_table2` (`table2id`);

ALTER TABLE `MyTable1`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

答案 1 :(得分:0)

您可能已设置外键约束on_delete。因此,请转到 结构标签 ,然后点击 关系视图 。在那里,您可以找到外键约束。将关于删除选项更改为无操作

它可能有用。