可以使用基于上下文变量的自定义锁定机制,以防止重复调用AFTER UPDATE触发器。
CREATE TRIGGER au FOR table AFTER UPDATE POSITION 0ASBEGIN IF RDB$GET_ConTEXT('USER_TRANSACTION', 'MY_LOCK') IS NULL THEN BEGIN RDB$SET_ConTEXT('USER_TRANSACTION', 'MY_LOCK', 1); ... Do your update operations here ... RDB$SET_ConTEXT('USER_TRANSACTION', 'MY_LOCK', NULL); END WHEN ANY DO BEGIN RDB$SET_ConTEXT('USER_TRANSACTION', 'MY_LOCK', NULL); EXCEPTION; ENDEND


