可以定义称为触发器例程专用 SPL 例程,
此类例程只能从触发器操作的 FOR EACH ROW
段进行调用。
与 EXECUTE FUNCTION 或 EXECUTE PROCEDURE 例程可以从触发操作
列表中调用的普通 UDR 不同,触发器例程包含自己的 REFERENCING 子句,可用于为
触发操作修改的行中原有列和新列值定义相关名。这些相关名可以在触发器例程中的 SPL
语句中引用,为触发操作可在表或视图中修改数据的方式提供更大的灵活性。
触发器例程也可使用称为 DELETING 、
INSERTING 、
SELECTING 和 UPDATING 触发
器类型的布尔运算符,以标识已调用触发器例程的触发器的类型。触发器例程还可以调
用 mi_trigger* 例程(有时称为触发器自省类型)来获取关于已调用触发器例程的上下文的
信息。
触发器例程由包含 WITH TRIGGER REFERENCES 关键字的 EXECUTE FUNCTION 或
EXECUTE PROCEDURE 语句调用。
这些语句必须从触发操作的 FOR EACH ROW 段中调
用触发器例程,而不是从 BEFORE 或 AFTER 段中进行调用。
有关支持定义和执行触发器例程的 SQL 的 CREATE FUNCTION 、CREATE
PROCEDURE 、
EXECUTE FUNCTION 和 EXECUTE PROCEDURE 语句的语法特征的信
息,
请参阅
《GBase 8s SQL 指南:
语法》
。
有关 mi_trigger* 例程的更多信息,
请参阅
《GBase
8s DataBlade API 程序员指南》。