在触发器代码块中,有一些特殊变量可供使用。

NEW

NEW 是一个伪记录名称,它引用要用于行级触发器中的插入和更新操作的新表行。此变量不适用于语句级触发器,也不适用于行级触发器的删除操作。

其用法如下::NEW.column,其中 column 是定义了触发器的表中的某一列的名称。

当在之前行级触发器中使用时,:NEW.column 的初始内容是要插入的新行或要替换旧行的新行的已命名列中的值。当在之后行级触发器中使用时,该值已存储在表中,因为已对受影响的行执行操作。

在触发器代码块中,:NEW.column 可像任何其他变量一样使用。如果在之前行级触发器的代码块中将值分配给 :NEW.column,则该分配的值将用在新插入或已更新的行中。

OLD

OLD 是一个伪记录名称,它引用要用于行级触发器中的更新和删除操作的旧表行。此变量不适用于语句级触发器,也不适用于行级触发器的插入操作。

其用法如下::OLD.column 其中 column 是定义了触发器的表中某一列的名称。

当在之前行级触发器中使用时,:OLD.column 的初始内容是要删除的行或要替换为新行的旧行的已命名列中的值。当在之后行级触发器中使用时,该值不再存储在表中,因为已对受影响的行执行操作。

在触发器代码块中,:OLD.column 可像任何其他变量一样使用。如果将值分配给 :OLD.column,则对触发器的操作没有影响。

INSERTING

INSERTING 是一个条件表达式,如果插入操作触发了触发器,它将返回 true;否则返回 false。

UPDATING

UPDATING 是一个条件表达式,如果更新操作触发了触发器,它将返回 true;否则返回 false。

DELETING

DELETING 是一个条件表达式,如果删除操作触发了触发器,它将返回 true;否则返回 false。