触发器例程

可以定义称为触发器例程专用 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 程序员指南