我在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这种行为的任何区别。有什么想法吗?
答案 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
。因此,请转到 结构标签 ,然后点击 关系视图 。在那里,您可以找到外键约束。将关于删除选项更改为无操作。
它可能有用。