firebird 2.5等待另一个触发器

时间:2013-05-01 11:12:50

标签: triggers firebird wait firebird2.5

表1 中,触发器1 插入表3 ,其中触发器3 使用结果表2 中的触发2 。 只有在表2 中的触发器2 之后,Firebird 2.5中是否有办法在表1 中午餐触发1 ? 也许有些“等待触发”?

1 个答案:

答案 0 :(得分:1)

不,在Firebird 2.5中,您无法将触发器指定为仅在其他触发器之后运行。

触发器的执行顺序由触发它们的语句的顺序决定,即如果你使用

INSERT INTO table2 ...
INSERT INTO table1 ...

然后ON INSERT的{​​{1}}触发器在table2之前执行。如果table有多个给定类型的触发器,则顺序由触发器声明的table1子句确定。

如果您不能保证POSITION语句的顺序,那么您可以使用数据库触发器作为解决方法 - 创建INSERT触发器,在其中检查您在{{中设置的标志1}}。如果该标志在那里,则执行需要ON TRANSACTION COMMIT中生成的数据的内容。要设置标记,您可以将RDB$SET_CONTEXTtrigger2命名空间一起使用。像

这样的东西
trigger2

有关完整的TRIGGER DDL syntax,请参阅Firebirds语言参考。