首页 文章

无法使用PHPMyAdmin删除行

提问于
浏览
2

我在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

    您可能已设置外键约束 on_delete . 所以,转到 Structure tab 并单击 Relation view . 在那里,您可以找到外键约束 . 将 On delete 选项更改为 No Action .

    它可能会奏效 .

  • 0

    更新 - phpMyAdmin 4.6.6修复此错误 .

    How to upgrade phpMyAdmin in XAMPP to latest?

    原始邮政

    我可以在我的环境中重现错误,但不能在demo.phpmyadmin.net上重现错误 . 如果您的InnoDB或MyISAM表名称在任何位置具有任何大写字符,如下所示,则可能存在此问题 . 我在运行phpMyAdmin版本4.5.2,10.1.19的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;
    

相关问题