无法使用 PHPMyAdmin 删除行
Unable to delete rows using PHPMyAdmin
我在 Mac 上使用 PHPMyAdmin 4.6.0(当前 table)来管理 MySQL table。我创建了一个具有以下架构的 table:
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 的数据时,我 select 使用左侧复选框的一些行,然后按 [=31= 下面的删除 link ].我被重定向到另一个页面,显示以下 SQL 个要执行的查询:
DELETE FROM `table1` WHERE ;
DELETE FROM `table1` WHERE ;
DELETE FROM `table1` WHERE ;
注意这里缺少数据集的ID,导致查询失败。如果我在一行中按 "delete" 按钮,也会发生类似的情况。出现一个模态,显示以下输出:
Do you really want to execute "DELETE FROM `table1` WHERE LIMIT 1"?
请注意,此处也缺少 WHERE
子句。然而,它适用于另一个数据库中的不同 table,甚至是同一数据库中的另一个 table。例如,另一个 table 具有以下架构:
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 的这种行为的任何差异。有什么想法吗?
更新 - phpMyAdmin 4.6.6 修复了这个错误。
How to upgrade phpMyAdmin in XAMPP to latest?
原创POST
我可以在我的环境中重现错误,但不能在 demo.phpmyadmin.net 上重现。如果您的 InnoDB 或 MyISAM table 名称在任何位置都有大写字符,如下所示,则可能存在此问题。我在 XAMPP Mac 运行 phpMyAdmin 版本 4.5.2、10.1.19--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;
您可能设置了一个外键约束on_delete
。因此,转到结构选项卡并单击关系视图.在那里,您可以找到外键约束。将 On delete 选项更改为 No Action。
可能有用。
我在 Mac 上使用 PHPMyAdmin 4.6.0(当前 table)来管理 MySQL table。我创建了一个具有以下架构的 table:
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 的数据时,我 select 使用左侧复选框的一些行,然后按 [=31= 下面的删除 link ].我被重定向到另一个页面,显示以下 SQL 个要执行的查询:
DELETE FROM `table1` WHERE ;
DELETE FROM `table1` WHERE ;
DELETE FROM `table1` WHERE ;
注意这里缺少数据集的ID,导致查询失败。如果我在一行中按 "delete" 按钮,也会发生类似的情况。出现一个模态,显示以下输出:
Do you really want to execute "DELETE FROM `table1` WHERE LIMIT 1"?
请注意,此处也缺少 WHERE
子句。然而,它适用于另一个数据库中的不同 table,甚至是同一数据库中的另一个 table。例如,另一个 table 具有以下架构:
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 的这种行为的任何差异。有什么想法吗?
更新 - phpMyAdmin 4.6.6 修复了这个错误。
How to upgrade phpMyAdmin in XAMPP to latest?
原创POST
我可以在我的环境中重现错误,但不能在 demo.phpmyadmin.net 上重现。如果您的 InnoDB 或 MyISAM table 名称在任何位置都有大写字符,如下所示,则可能存在此问题。我在 XAMPP Mac 运行 phpMyAdmin 版本 4.5.2、10.1.19--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;
您可能设置了一个外键约束on_delete
。因此,转到结构选项卡并单击关系视图.在那里,您可以找到外键约束。将 On delete 选项更改为 No Action。
可能有用。