触发器执行

触发器是一个数据库对象,当指定数据操作语言操作发生时(触发事件),该对象可以自动执行一个或多个 SQL 语句(触发操作)。您可以在一个表上定义一个或多个触发器以便在 SELECT、INSERT、UPDATE 或 DELETE 触发事件发生之后进行操作。

还可以定义视图上的 INSTEAD OF 触发器。这些触发器指定当触发 INSERT、UPDATE 或 DELETE 语句尝试修改视图时,底层的表中作为触发操作执行的 SQL 语句。这些触发器称为 INSTEAD OF 触发器,因为仅执行触发 SQL 操作;不执行触发事件。有关使用触发器的更多信息,请参阅《GBase 8s SQL 指南:教程》以及《GBase 8s SQL 指南:语法》中有关 CREATE TRIGGER 语句的信息。

图: 系统目录表中存储的触发器信息


在周围的文本中描述此图。
当您使用 CREATE TRIGGER 语句注册新的触发器时,数据库服务器:

sysprocedures 系统目录表标识只可以作为触发器操作调用的触发器例程。

sysmaster 数据库的内存驻留表指示表或视图是否具有触发器。

只要发出 SELECT、INSERT、UPDATE 或 DELETE 语句,数据库服务器就会查看语句是否为可以激活 DML 在其上操作的表或列(或者视图)的触发器的触发事件。如果语句需要激活触发器,那么数据库服务器将在触发事件之前、期间或之后从 systrigbody 表检索触发操作的语句文本并运行触发 DML 语句或 SPL 例程。对于视图上的 INSTEAD OF 触发器,数据库服务器执行触发操作而不是触发事件。