【发布时间】:2014-06-10 19:15:01
【问题描述】:
我有以下 oracle 表:
Family= { pk_id_family, nm_family }
Generation_1 = { pk_id_gen_1, nm_gen_1, fk_id_family}
Dependent_gen_1 = { pk_id_dep_gen_1, nm_dep_gen_1, fk_id_gen_1 }
Dependent_gen_2 = { pk_id_dep_gen_2, nm_dep_gen_2, fk_id_dep_gen_1 }
Acquainted = {pk_id_acquainted, nm_acquainted, fk_id_gen_1 }
我想创建一个接收 pk_id_family 作为参数的过程,并在 Generation_1 中递归删除,并在从 Generation_1 删除之后(使用 fk_id_family ) 继续从 Dependent_gen_2 中删除(使用 fk_id_dep_gen_1)等等,直到 熟悉。
注意:我可以在约束上激活 DELETE CASCADE,但我想知道是否有其他方法。
触发器不是一个选项,因为我不想更改表格的行为。该程序不会经常使用。 我不想使用触发器更改表格行为。
谢谢
【问题讨论】:
标签: sql oracle stored-procedures oracle11g oracle10g