mysql - 无法删除表 : A foreign key constraint fails

标签 mysql sql drop-table

在 MySQL 中我想删除一个表。
我尝试了很多东西,但我不断收到名为 bericht 的表无法删除的错误。这是我得到的错误:

#1217 - Cannot delete or update a parent row: a foreign key constraint fails

如何删除此表?

最佳答案

这应该可以解决问题:

SET FOREIGN_KEY_CHECKS=0; DROP TABLE bericht; SET FOREIGN_KEY_CHECKS=1;

正如其他人指出的那样,这几乎从来都不是您想要的,即使这是问题中提出的问题。更安全的解决方案是在删除 bericht 之前根据 bericht 删除表。有关如何做到这一点,请参阅 CloudyMarble 答案。当我不想或无法删除并重新创建数据库本身时,我使用 bash 和帖子中的方法删除数据库中的所有表。

#1217 错误发生在其他表对您尝试删除的表有外键约束并且您正在使用 InnoDB 数据库引擎时。此解决方案暂时禁用检查约束,然后重新启用它们。阅读 documentation更多。请务必根据 bericht 删除表中的外键约束和字段,否则您的数据库可能会处于损坏状态。

关于mysql - 无法删除表 : A foreign key constraint fails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11100911/

相关文章:

mysql - 将类似 sql 查询的结果按百分位数分组 : In Redshift/postgresql

mysql - 在 MySQL 中查询大量动态配置文件的最有效方法是什么?

SQL 两个整数相除得到小数值错误

mysql - 同时从2个表中删除数据

sql - 删除具有在 postgreSQL 中指定的模式的表列表

php - Mysql/PDO 问题

mysql - MySql 中的多个 SELECT 语句,返回 date_sub()

mysql - 无法删除 mysql 表

mysql - 如何解决此问题 - 无法删除或更新父行 : a foreign key constraint fails

php - 插入并连接字段并保存在mysql表的第三个字段中