語法如下:
創新互聯公司自成立以來,一直致力于為企業提供從網站策劃、網站設計、成都做網站、成都網站建設、成都外貿網站建設、電子商務、網站推廣、網站優化到為企業提供個性化軟件開發等基于互聯網的全面整合營銷服務。公司擁有豐富的網站建設和互聯網應用系統開發管理經驗、成熟的應用系統解決方案、優秀的網站開發工程師團隊及專業的網站設計師團隊。
CREATE TRIGGER trigger_name trigger_time trigger_event
ON tbl_name FOR EACH ROW trigger_stmt
觸發程序是與表有關的命名數據庫對象,當表上出現特定事件時,將激活該對象。
觸發程序與命名為tbl_name的表相關。tbl_name必須引用永久性表。不能將觸發程序與臨時表表或視圖關聯起來。
trigger_time是觸發程序的動作時間。它可以是BEFORE或AFTER,以指明觸發程序是在激活它的語句之前或之后觸發。
trigger_event指明了激活觸發程序的語句的類型。trigger_event可以是下述值之一:
· INSERT:將新行插入表時激活觸發程序,例如,通過INSERT、LOAD DATA和REPLACE語句
語法說明如下。
1) 觸發器名
觸發器的名稱,觸發器在當前數據庫中必須具有唯一的名稱。如果要在某個特定數據庫中創建,名稱前面應該加上數據庫的名稱。
2) INSERT | UPDATE | DELETE
觸發事件,用于指定激活觸發器的語句的種類。
注意:三種觸發器的執行時間如下。INSERT:將新行插入表時激活觸發器。例如,INSERT 的 BEFORE 觸發器不僅能被 MySQL 的 INSERT 語句激活,也能被 LOAD DATA 語句激活。DELETE: 從表中刪除某一行數據時激活觸發器,例如 DELETE 和 REPLACE 語句。UPDATE:更改表中某一行數據時激活觸發器,例如 UPDATE 語句。
3) BEFORE | AFTER
BEFORE 和 AFTER,觸發器被觸發的時刻,表示觸發器是在激活它的語句之前或之后觸發。若希望驗證新數據是否滿足條件,則使用 BEFORE 選項;若希望在激活觸發器的語句執行之后完成幾個或更多的改變,則通常使用 AFTER 選項。
4) 表名
與觸發器相關聯的表名,此表必須是永久性表,不能將觸發器與臨時表或視圖關聯起來。在該表上觸發事件發生時才會激活觸發器。同一個表不能擁有兩個具有相同觸發時刻和事件的觸發器。例如,對于一張數據表,不能同時有兩個 BEFORE UPDATE 觸發器,但可以有一個 BEFORE UPDATE 觸發器和一個 BEFORE INSERT 觸發器,或一個 BEFORE UPDATE 觸發器和一個 AFTER UPDATE 觸發器。
5) 觸發器主體
觸發器動作主體,包含觸發器激活時將要執行的 MySQL 語句。如果要執行多個語句,可使用 BEGIN…END 復合語句結構。
數據庫觸發器有下面的作用:
1.安全性。能夠基于數據庫的值使用戶具有操作數據庫的某種權利。
# 能夠基于時間限制用戶的操作,比如不同意下班后和節假日改動數據庫數據。
2.審計。能夠跟蹤用戶對數據庫的操作。???
# 審計用戶操作數據庫的語句。
# 把用戶對數據庫的更新寫入審計表。
3.實現復雜的數據完整性規則
# 實現非標準的數據完整性檢查和約束。觸發器可產生比規則更為復雜的限制。與規則不同,觸發器能夠引用列或數據庫對象。比如,觸發器可回退不論什么企圖吃進超過自己保證金的期貨。
# 提供可變的缺省值。
4.實現復雜的非標準的數據庫相關完整性規則。觸發器能夠對數據庫中相關的表進行連環更新。比如,在auths表author_code列上的刪除觸發器可導致對應刪除在其他表中的與之匹配的行。
# 在改動或刪除時級聯改動或刪除其他表中的與之匹配的行。
# 在改動或刪除時把其他表中的與之匹配的行設成NULL值。
# 在改動或刪除時把其他表中的與之匹配的行級聯設成缺省值。
# 觸發器可以拒絕或回退那些破壞相關完整性的變化,取消試圖進行數據更新的事務。當插入一個與其主健不匹配的外部鍵時,這樣的觸發器會起作用。比如,可以在books.author_code?列上生成一個插入觸發器,假設新值與auths.author_code列中的某值不匹配時,插入被回退。
5.同步實時地復制表中的數據。
6.自己主動計算數據值,假設數據的值達到了一定的要求,則進行特定的處理
名稱欄目:mysql的觸發器怎么用,mysql觸發器菜鳥教程
文章出自:http://vcdvsql.cn/article34/dsdgope.html
成都網站建設公司_創新互聯,為您提供微信小程序、網站導航、網站設計、網站策劃、面包屑導航、定制開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯