级联删除具有非级联外键的行

问题描述 投票:0回答:1

我有一个带有一些外键的数据库,这些外键没有配置ON DELETE CASCADE;如果可能,我想避免更改此设置。同样,我们的JPA关系也未配置为cascade = CascadeType.REMOVE

是否仍可以“级联模式”删除实体,即自动为其子代生成所有必要的删除查询?

理想情况下,我想通过JPA进行此操作,但是原始SQL查询也可以。主要问题在于,并非所有(但大多数)外键约束都反映在JPA关系中,例如OneToOneOneToMany等。

mysql jpa eclipselink cascade
1个回答
0
投票

您只需为要级联的表编写delete语句。

CREATE TRIGGER trigger_name
BEFORE DELETE
   ON table_name FOR EACH ROW

BEGIN
DELETE FROM some_child_table WHERE some_fk_field IN (SELECT some_id FROM some_Table);
DELETE FROM some_table;
END;
© www.soinside.com 2019 - 2024. All rights reserved.