触发器变量 (PL/SQL)
NEW 和 OLD 是特殊变量,您可以将其与 PL/SQL 触发器配合使用,而不必显式地定义这些变量。
- NEW 是一个伪记录名,它引用行级触发器中的插入和更新操作的新表行。它的用法是
:NEW.column,其中 column 是表中对其定义此触发器的列的名称。- 在行级前触发器中使用时,:NEW.column 的初始内容是所要插入的新行中的列值或者要替换旧行的行中的列值。
- 在行级后触发器中使用时,新列值已存储在表中。
- 当删除操作激活触发器时,该触发器中使用的 :NEW.column 为 null。
在触发器代码块中,可以像使用任何其他变量一样使用 :NEW.column。如果在行级前触发器的代码块中将值赋予 :NEW.column,那么所插入或更新的行将使用所赋予的值。
- OLD 是一个伪记录名,它引用行级触发器中的更新和删除操作的旧表行。它的用法是
:OLD.column,其中 column 是表中对其定义此触发器的列的名称。- 在行级前触发器中使用时,:OLD.column 的初始内容是所要删除的行中的列值或者要被新行替换的旧行中的列值。
- 在行级后触发器中使用时,旧列值已不再存储在表中。
- 当插入操作激活触发器时,该触发器中使用的 :OLD.column 为 null。
在触发器代码块中,可以像使用任何其他变量一样使用 :OLD.column。如果在行级前触发器的代码块中将值赋予 :OLD.column,那么所赋予的值不会影响触发器的操作。