MySQL & SQLit忽略外键约束删除数据
今天在删除表数据时遇到一个问题:
ERROR 1701 (42000): Cannot truncate a table referenced
in a foreign key constraint
(`diandian_loan`.`auth_group_permissions`, CONSTRAINT
`auth_group_permissi_permission_id_84c5c92e_fk_auth_p
ermission_id` FOREIGN KEY (`permission_id`) REFERENCES
`diandian_loan`.`auth_permissio)
意思是由于有主外键约束,所以不能删除表数据。
即使当时已经将父表数据清空还是不行。
解决办法:
先取消主外键关系验证:
SET FOREIGN_KEY_CHECKS = 0;
然后删除需要删除的数据
最后恢复:
SET FOREIGN_KEY_CHECKS = 1;
SQLit略有不同
PRAGMA foreign_keys = 0;
PRAGMA foreign_keys = 1;
完美解决