在觸發器代碼塊中,有一些特殊變量可供使用。

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。