当删除具有外键约束的表中数据时,
[SQL]TRUNCATE table itcast_privilege
[ Err ] 1701 - Cannot TRUNCATE a TABLE referenced IN a FOREIGN KEY CONSTRAINT (
`itcastoa0720`.`itcast_role_privilege`,
CONSTRAINT `FK350BD81DB0E19C6E` FOREIGN KEY (`privilegeId`) REFERENCES `itcastoa0720`.`itcast_privilege` (`id`)
)
我们执行语句查看表的外键约束信息
SELECT
*
FROM
information_schema.TABLE_CONSTRAINTS t
WHERE
t.TABLE_NAME = 'itcast_privilege'
AND CONSTRAINT_TYPE = 'FOREIGN KEY';
我们查看该表的FOREIGN_KEY_CHECKS的值
SELECT @@FOREIGN_KEY_CHECKS;
我们可以控制FOREIGN_KEY_CHECKS,来开启或关闭外键约束
如果值为1启动外键约束,如果值为0表示禁用外键约束所以当出现外键约束无法删除数据是,可以选择禁用外键约束,之后再次开启。
SET FOREIGN_KEY_CHECKS=0;
TRUNCATE TABLE itcast_privilege
SET FOREIGN_KEY_CHECKS=1;