我正在通过 Java 生成数据库模式,并且只想删除我更改的表,以免我再次输入所有数据(或从手动更新的转储中导入)。
但是由于几乎所有表都以某种方式通过外键连接,MySQL-Workbench 不允许我删除这些单个表并出现以下错误:
ERROR 1217: Cannot delete or update a parent row: a foreign key constraint fails
SQL Statement:
drop table `mydb`.`mytable`
我正在使用带有 InnoDB 的 MySQL 5.6。
答案1
FOREIGN_KEY_CHECKS
在删除表之前,您是否尝试过将其设置为 0?
http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html#sysvar_foreign_key_checks
答案2
您可以生成级联 DELETE 语句。在模式导航器中,右键单击表并从“发送到 SQL 编辑器”或“发送到剪贴板”中选择“带引用删除”,然后执行生成的查询。