【发布时间】:2013-01-13 10:58:09
【问题描述】:
我想删除与外键连接的 Oracle 表中的行。为了从表中删除行,我有两个选择:
必须严格按顺序运行的两个 DML 语句。
Oracle 删除前在主键表上触发。
哪种方法更好?我正在使用带有 Java 7 的 JDBC Oracle 瘦驱动程序。
【问题讨论】:
-
您也可以使用 ON DELETE CASCADE。
-
有趣的提议。我必须在桌子上附加 CASCADE DELETE。这是否比触发器更好的性能?
-
触发器需要每行触发一次,约束可以一次性删除所有子行。
-
cascade delete是外键的一个选项,而不是表。 -
关于这个一般主题,不要忘记您也可以根据父表和子表的视图进行删除,并在父表上放置谓词以标识将被删除的子记录。跨度>