删除表中的一行会触发另一个表中的删除

时间:2019-04-08 16:02:14

标签: database oracle

我有一个奇怪的问题。在一个表中执行删除时,我在另一个表中删除了!

我执行了此命令以搜索数据库中的所有触发器,但没有找到任何触发器。

select * from ALL_TRIGGERS;

如何调查此问题?

1 个答案:

答案 0 :(得分:4)

两个表之间是否存在外键约束?如果是这样,它是否定义为ON DELETE CASCADE?

此查询将找到引用YOUR_TABLE_NAME(这是您要删除的目标表)上的主键或唯一键的外键。

select r.table_name
       , r.constraint_name as foreign_key
       , r.delete_rule
from all_constraints r
     join all_constraints p
     on p.owner = r.r_owner and p.constraint_name = r.r_constraint_name
where r.constraint_type = 'R'
and p.constraint_type in ('U', 'P')
and p.table_name = 'YOUR_TABLE_NAME'
/

DELETE_RULE将显示是否将父记录的删除级联到从属记录。