[Err] 1701 - Cannot truncate a table referenced in a foreign key constraint

匿名 (未验证) 提交于 2019-12-03 00:19:01
在清空表中数据时报错:
[SQL]truncate table ACT_RE_DEPLOYMENT ; [Err] 1701 - Cannot truncate a table referenced in a foreign key constraint (`act`.`ACT_GE_BYTEARRAY`, CONSTRAINT `ACT_FK_BYTEARR_DEPL` FOREIGN KEY (`DEPLOYMENT_ID_`) REFERENCES `act`.`ACT_RE_DEPLOYMENT` (`ID_`)) 
报错的意思大概是:不能清空具有外键约束的表*,然后有常识了delete语句,添加了伪条件where 1=1,记得之前有这样的情况然后还是报错,

原因

[SQL] DELETE FROM ACT_RE_DEPLOYMENT where 1=1; [Err] 1451 - Cannot delete or update a parent row: a foreign key constraint fails (`act`.`ACT_GE_BYTEARRAY`, CONSTRAINT `ACT_FK_BYTEARR_DEPL` FOREIGN KEY (`DEPLOYMENT_ID_`) REFERENCES `ACT_RE_DEPLOYMENT` (`ID_`)) 

解决方法是:

1.SET FOREIGN_KEY_CHECKS=0;  2.DELETE FROM ACT_RE_DEPLOYMENT where 1=1; -- 或 -- truncate table ACT_RE_DEPLOYMENT ;  3.SET FOREIGN_KEY_CHECKS=1;

Mysql中如果表和表之间建立的外键约束,则无法删除表及修改表结构。

解决方法是:

1、首先取消外键约束:SET FOREIGN_KEY_CHECKS=0;

2、修改表数据或表结构

3、然后再设置外键约束: SET FOREIGN_KEY_CHECKS=1;




易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!