有没有办法查看从 Oracle DB 中删除行时将执行哪些步骤?
Posted
技术标签:
【中文标题】有没有办法查看从 Oracle DB 中删除行时将执行哪些步骤?【英文标题】:Is there a way to look what steps will be executed on delete row from Oracle DB? 【发布时间】:2020-04-16 14:35:34 【问题描述】:我有一个查询,执行 5 分钟。我想减少这个时间。为此,我必须知道将触发哪些触发器以及将级联删除其他表中的哪些行。目标表中没有很多行。那么有没有办法查看行删除(Oracle DB)将执行什么?
查询看起来像:
DELETE FROM TABLE_NAME where FIELD = 'VALUE';
【问题讨论】:
【参考方案1】:要查找表上DELETE
事件的所有触发器,请使用以下查询:
SELECT *
FROM ALL_TRIGGERS
WHERE TABLE_NAME = '<YOUR_TABLE_NAME>'
AND TABLE_OWNER = '<YOUR_SCHEMA_NAME>'
AND TRIGGERING_EVENT LIKE '%DELETE%';
要查找将通过ON DELETE CASCADE
约束删除数据的所有表,请使用以下查询:
SELECT *
FROM USER_CONSTRAINTS
WHERE CONSTRAINT_TYPE = 'R'
AND DELETE_RULE = 'CASCADE'
AND R_CONSTRAINT_NAME = (
SELECT CONSTRAINT_NAME
FROM USER_CONSTRAINTS
WHERE TABLE_NAME = '<YOUR_TABLE_NAME>'
AND CONSTRAINT_TYPE = 'P'
);
【讨论】:
以上是关于有没有办法查看从 Oracle DB 中删除行时将执行哪些步骤?的主要内容,如果未能解决你的问题,请参考以下文章
当在 c# Xamarin 上显示来自 db 的 ListView 数据时,有没有办法从屏幕中删除 System.Collection.Generic 消息而不是字符串
删除 db 中的行时出现 TokenMismatchException