使用TRUNCATE TABLE清空数据时出现Cannot truncate a table referenced in a foreign key constraint

使用TRUNCATE TABLE 清空数据时出现以下错误:
Error
为什么会出现这种错误呢?

  • 经过测试是因为使用TRUNCATE TABLE 命令对被引用做外键的主表进行数据清空时,无论主表里的数据是否被引用,都会出现这种错误。

解决办法:

  1. 先把外键约束关闭,清空后在打开即可
SET FOREIGN_KEY_CHECKS = 0;   //先归0
TRUNCATE 表名;              //在清除数据
SET FOREIGN_KEY_CHECKS = 1;   //然后设置1

但是,使用上述方法不能保证数据安全性,如果从表引用了主表数据,它也会把主表所有数据给清空,不建议使用。

  1. 使用DELETE进行清空数据,它会对数据进行检查,如果被引用的话会有提示
DELETE FROM 表名

所以对具有外键约束的主表数据进行删除时直接使用第二种方法对数据进行删除即可。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值