我想放弃 ORACLE 中的现有触发器。
我确实知道 oracle 中触发器的drop
查询。但是想知道如何检查 Oracle DB 中是否已存在该触发器。
DROP查询:
DROP TRIGGER **TRIGGER_NAME**
答案 0 :(得分:4)
您需要一个带有动态SQL的PL / SQL块:
-- drop the trigger if it exists
declare
l_count integer;
begin
select count(*)
into l_count
from user_triggers
where trigger_name = 'TRIGGER_NAME';
if l_count > 0 then
execute immediate 'drop trigger trigger_name';
end if;
end;
/
-- now create the trigger
create trigger trigger_name
..
begin
end;
/
请注意,(未引用的)标识符以大写形式存储在Oracle系统目录中。因此,请确保在PL / SQL检查中使用trigger_name = 'TRIGGER_NAME'
,而不是trigger_name = 'trigger_name'
答案 1 :(得分:-1)
您有两个选择:
1)检查是否存在触发器
SELECT *
FROM user_triggers
WHERE trigger_name = '...'
2)DROP触发并检查EXCEPTION