触发器类型的布尔运算符
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 触发器调用触发器例程,则
⚫ 在 MERGE 正在从目标表删除行时,DELETING 返回 TRUE。
⚫ 在 MERGE 正在将行插入到目标表内时,INSERTING 返回 TRUE。
⚫ 在 MERGE 正在更新目标表的行时,UPDATING 返回 TRUE。




