出现情景:
在用
truncate
清空表数据时,由于外键约束限制导致清空失败报错:[42000][1701] Cannot truncate a table referenced in a foreign key constraint
解决方法:
- 禁用外键约束
在执行截断操作之前,先禁用表中的外键约束:
SET FOREIGN_KEY_CHECKS=0;
- 截断清空表
这里事例表明:tableName
TRUNCATE TABLE tableName
- 启用外键约束
截断完成后,需要重新启用 tableName 表中的外键约束,可以使用以下命令启用外键约束:
SET FOREIGN_KEY_CHECKS=1;
扩展:
• DROP语句可以删除整个表,包括表结构和数据;
• TRUNCATE语句则可以快速地删除表中的所有数据,但不删除表结构;
• DELETE语句可以删除表中的数据,不包括表结构;