我有一个有趣的问题:
我有一个带触发器名称的表,名为Foo
,Foo.TriggerName
字段存储触发器名称。如果我从Foo
删除一行,我想要一个触发器,它会删除名为Foo.TriggerName
的触发器。
示例:
Foo
ID, TriggerName
1, 'Lorem'
2, 'Ipsum'
3, 'Bar'
当我使用ID = 3
删除行时,我想自动删除名为'Bar'
的触发器。我怎样才能做到这一点?
答案 0 :(得分:3)
您可以尝试使用动态sql
您可以在Foo上定义删除触发器 并在触发器中,您可以执行动态SQL调用
CREATE OR REPLACE TRIGGER foo_before_delete
BEFORE DELETE
ON Foo
FOR EACH ROW
BEGIN
EXECUTE IMMEDIATE 'DROP TRIGGER '||:old.TriggerName||';';
END;