UPDATE觸發器
UPDATE 觸發器在 UPDATE 語句執行之前或之後執行。 需要知道以下幾點:
1.在UPDATE 觸發器程式碼中,你可以引用一個名為OLD 的虛擬表存取先前( UPDATE 語句前)的值,引用一個名為NEW 的虛擬表存取新更新的值;
2.在BEFORE UPDATE 觸發器中, NEW 中的值也可能會更新(允許變更將要用於UPDATE 語句中的值);
3.OLD 中的值全都是唯讀的,不能更新。
下面的例子保證州名縮寫總是大寫(不管UPDATE 語句中給出的是大寫還是小寫):
輸入:
create trigger updatevendor before update on vends for each row set new.vend_state = upper(new.vend_state);
分析:顯然,任何資料淨化都需要在UPDATE 語句之前進行,就像這個範例一樣。每次更新一行時, NEW.vend_state 中的值(將用來更新表格行的值)都會用 Upper(NEW.vend_state) 取代。
關於觸發器的進一步介紹
在結束本章之前,我們再介紹一些使用觸發器時需要記住的重點。
1.與其他DBMS相比,MySQL 5中支援的觸發器相當初級。未來的MySQL版本中有一些改進和增強觸發器支援的計劃。
2.建立觸發器可能需要特殊的安全存取權限,但是,觸發器的執行是自動的。如果 INSERT 、 UPDATE 或 DELETE 語句能夠執行,則相關的觸發器也能執行。
3.應該用觸發器來保證資料的一致性(大小寫、格式等)。在觸發器中執行這種類型的處理的優點是它總是進行這種處理,而且是透明地進行,與客戶機應用無關。
4.觸發器的一個非常有意義的使用是建立稽核追蹤。使用觸發器,把更改(如果需要,甚至還有之前和之後的狀態)記錄到另一個表格非常容易。
5.遺憾的是,MySQL觸發器中不支援 CALL 語句。這表示不能從觸發器內呼叫預存程序。所需的預存程序代碼需要複製到觸發器內。
【相關推薦】
1. mysql免費影片教學
3. MySQL中insert觸發器(插入)詳解
4. mysql觸發器簡介及如何建立與移除觸發器
#5. MySQL使用字元集和校對順序使用教學
###以上是MySQL UPDATE觸發器(更新)及觸發器深度解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!