关于数据库外键的级联操作
使用jpa
建的数据库,用mybatis
删除有外键的数据时,说外键约束删除失败,报错如下:
Cannot delete or update a parent row: a foreign key constraint fails (`blog`.`t_blog_tags`, CONSTRAINT `FKh4pacwjwofrugxa9hpwaxg6mr` FOREIGN KEY (`blogs_id`) REFERENCES `t_blog` (`id`))
然后去数据库查看t_blog_tags
表,发现有外键约束如下:
更新和删除时都有约束。
把restrict
(约束)改成cascade
(级联),可以级联删除和更新
另外,如果要强制删除,不级联删除的话,可以关闭外键约束,如下
set @@foreign_key_checks=0
开启外键约束就设置为1。
查看外键约束状态:
select @@foreign_key_checks