答案 0 :(得分:121)
根据要求,现在作为答案...
当使用MySQL Query Browser或phpMyAdmin时,似乎为每个查询(bugs.mysql.com/bug.php?id=8280)打开了一个新连接,因此需要在一个查询中编写所有drop语句,例如。
SET FOREIGN_KEY_CHECKS=0;
DROP TABLE my_first_table_to_drop;
DROP TABLE my_second_table_to_drop;
SET FOREIGN_KEY_CHECKS=1;
SET FOREIGN_KEY_CHECKS=1
作为额外安全措施的地方......
答案 1 :(得分:101)
答案 2 :(得分:47)
答案 3 :(得分:28)
答案 4 :(得分:6)
希望它的工作
SET foreign_key_checks = 0;
DROP TABLE table name
;
SET foreign_key_checks = 1;
答案 5 :(得分:1)
在Rails上,可以使用rails console
:
connection = ActiveRecord::Base.connection
connection.execute("SET FOREIGN_KEY_CHECKS=0;")
答案 6 :(得分:0)
以前使用此表时可能会收到错误。您可以重命名该表并尝试再次删除它。
ALTER TABLE `area` RENAME TO `area2`;
DROP TABLE IF EXISTS `area2`;
答案 7 :(得分:0)
我找到了一个简单的解决方案,导出数据库,在文本编辑器中编辑它想要编辑的内容,然后导入它。完成
答案 8 :(得分:-1)
无法删除或更新父行:外键约束失败(table1
。user_role
,CONSTRAINT FK143BF46A8dsfsfds@#5A6BD60
FOREIGN KEY(user_id
)参考user
(id
))
我用两个简单的步骤做了什么。首先我删除子表中的子行,如
的MySQL>从table2中删除role_id = 2&& user_id = 20;
查询正常,1行受影响(0.10秒)
和删除父级的第二步
从table1删除,其中id = 20;
查询OK,1行受影响(0.12秒)
通过这个我解决问题,这意味着删除孩子,然后删除父母
我希望你明白了。 :)