MySQL UPDATE觸發器(更新)及觸發器深度解析

巴扎黑
發布: 2017-05-19 15:22:27
原創
8828 人瀏覽過

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免費影片教學

#2. MySQL delete觸發器(刪除)用法詳

3. MySQL中insert觸發器(插入)詳解

4. mysql觸發器簡介及如何建立與移除觸發器

#5. MySQL使用字元集和校對順序使用教學

###

以上是MySQL UPDATE觸發器(更新)及觸發器深度解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!