触发器类型的布尔运算符

GBase 8s 的触发器类型的布尔运算符可在运行时测试当前正在执行的触发器活动是否是通过 DML 事件的指定的类型触发了的。这些运算符不使用操作对象。

触发器类型的布尔运算符

如果当前正在执行的触发器的触发事件是对应于操作符的名称的 DML 操作,则这些操作符返回 TRUE ('t'),否则它们返回 FALSE ('f')。在 IF 语句中,在 CASE 表达式中,以及在布尔条件为有效的 SPL 触发器例程内的其他上下文中,这些操作符是有效的。

例如,在下列语句片断中,仅当通过 INSERT 事件激活的当前正在执行的触发器时,才执行第一个 THEN 子句中的 LET 语句,且仅当通过 DELETE 事件激活了该触发器时,才执行第二个 THEN 子句中的 LET 语句:
IF (INSERTING = 't') THEN 
        LET square = NEW.X * NEW.X 
        ELIF (DELETING = 't') THEN
        LET square = 0   
      

仅在表上触发器或(对于 DELETING、INSERTING 和 UPDATING运算符)在视图上 INSTEAD OF 触发器的 FOR EACH ROW 触发的活动中调用的触发器 UDR 中,SELECTING、DELETING、INSERTING 和 UPDATING 运算符才是有效的。如果您尝试在任何其他的上下文中使用触发器类型的布尔运算符,则发出错误。

如果通过 MERGE 语句已激活了的 Delete、Insert 或 Update 触发器调用触发器例程,则