在MySQL中删除一张表或一条数据的时候,出现
[Err] 1451 -Cannot deleteorupdatea parent row:
aforeignkeyconstraintfails (...)
这是因为MySQL中设置了foreign key关联,造成无法更新或删除数据。可以通过设置FOREIGN_KEY_CHECKS变量来避免这种情况。
禁用外键约束,我们可以使用:
SETFOREIGN_KEY_CHECKS=0;
然后再删除数据
启动外键约束,我们可以使用:
SETFOREIGN_KEY_CHECKS=1;
查看当前FOREIGN_KEY_CHECKS的值,可用如下命令:
SELECT @@FOREIGN_KEY_CHECKS;
相关文章
- MySQL8.0数据库出现的问题——外码创建方式、外键约束两个引用列不兼容问题、check约束问题、用触发器代替check约束、关键字DELIMITER、删除添加索引、删除添加外键约束、和一些数据库方面的操作
- 如何高效删除 MySQL 日志表中的历史数据?实战指南
- mysql导入数据时的外键约束问题
- 数据库在有外键约束的情况下,怎么删除数据库中的数据
- 如何在不删除数据库权限的情况下从命令行删除所有MySQL表?(复制)
- mysql数据库:分表、多表关联、外键约束、级联操作
- MySQL数据库删除数据(有外键约束)
- Mysql如何向存在外键的数据表中插入数据
- 如何删除mysql中数据库的所有表中的所有行
- 如何将数据插入到包含有外键依赖关系的多个表中(MySQL)