关于数据库外键的级联操作

使用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表,发现有外键约束如下:

image-20201020202458435

更新和删除时都有约束。

restrict(约束)改成cascade(级联),可以级联删除和更新


另外,如果要强制删除,不级联删除的话,可以关闭外键约束,如下

set @@foreign_key_checks=0

开启外键约束就设置为1。

查看外键约束状态:

select @@foreign_key_checks
posted @ 2020-10-20 22:56  xsyz  阅读(492)  评论(0编辑  收藏  举报