mysql 觸發器OLD和NEW關鍵字

2021-06-28 01:46:39 字數 449 閱讀 8767

使用old和new關鍵字,能夠訪問受觸發程式影響的行中的列(old和new不區分大小寫)。在insert觸發程式中,僅能使用new.col_name,沒有舊行。在delete觸發程式中,僅能使用old.col_name,沒有新行。在update觸發程式中,可以使用old.col_name來引用更新前的某一行的列,也能使用new.col_name來引用更新後的行中的列。

用old命名的列是唯讀的。你可以引用它,但不能更改它。對於用new命名的列,如果具有select許可權,可引用它。在before觸發程式中,如果你具有update許可權,可使用「set new.col_name = value」更改它的值。這意味著,你可以使用觸發程式來更改將要插入到新行中的值,或用於更新行的值。

在before觸發程式中,auto_increment列的new值為0,不是實際插入新記錄時將自動生成的序列號。

old和new是對觸發程式的mysql擴充套件。

mysql觸發器 NEW與OLD解析

mysql觸發器之 new與old解析mysql觸發器中,new關鍵字,和 ms sql server 中的 inserted 和 deleted 類似,mysql 中定義了 new 和 old,用來表示觸發器的所在表中,觸發了觸發器的那一行資料。具體地 在 insert 型觸發器中,new 用來表...

觸發器中OLD和NEW的使用

一 old和new在oracle中不區分大小寫 二 old和new可以用在declare中也可以用在begin裡的sql語句 只會在begin中的sql語句裡用 三 old表示插入之前的值,new表示新插入的值 old用在刪除和修改,new用在新增和修改 但是用delete new值也沒有報錯,不知...

Oracle觸發器中的new和old

對於oracle觸發器中的new和old new 為乙個引用最新的列值 old 為乙個引用以前的列值 這兩個變數只有在使用了關鍵字 for each row 時才存在.且update語句兩個都有,而insert只有 new delect 只有 old createorreplacetriggertr...