mysql使用truncate清空表有外键问题(mysql 禁用和启用外键)

mysql多个表之前存在外键关联时,清空数据报错,如下:

TRUNCATE TABLE security_data
> 1701 - Cannot truncate a table referenced in a foreign key constraint (`scb-dev`.`identify_result`, CONSTRAINT `identify_result_ibfk_2` FOREIGN KEY (`SECURITY_DATA_ID`) REFERENCES `scb-dev`.`security_data` (`ID`))
> 时间: 0.001s

解决方法:删除时先禁用外键,然后再启动外键

-- 禁用外键约束.
SET FOREIGN_KEY_CHECKS=0;

注意:这个语句只是会话级的,只能在这个会话操作导入数据,删除数据之类的操作。再打开新的会话,外键还是启用着生效的。


-- 启动外键约束.
SET FOREIGN_KEY_CHECKS=1;
 注意:或者直接把当前会话关闭了,再新开会话,外键就是启用的


-- 查看当前FOREIGN_KEY_CHECKS的值可用如下命令
SELECT  @@FOREIGN_KEY_CHECKS;

 @@FOREIGN_KEY_CHECKS=0(禁用外键)

 @@FOREIGN_KEY_CHECKS=1(启用外键)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值