語法說明如下。
成都創新互聯公司主營向陽網站建設的網絡公司,主營網站建設方案,成都app軟件開發公司,向陽h5微信小程序搭建,向陽網站營銷推廣歡迎向陽等地區企業咨詢
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用觸發器禁止某條記錄的刪除、修改:
delimiter //
CREATE TRIGGER xx_company_agent_update? BEFORE UPDATE ON xx_company_agent
FOR EACH ROW
BEGIN
IF OLD.bank_card is not null THEN
SET NEW.bank_card = OLD.bank_card,NEW.money= OLD.money,NEW.real_money=OLD.real_money,NEW.bank_name=OLD.bank_name;
END IF;
END;//
delimiter ;
擴展資料
mysql觸發器的使用
用戶記錄用戶的預期事件(schema是特殊用戶的數據庫對象集合。這些對象包括:表,索引,視圖,存儲程序等。在Oracle里, schema要求創建一個用戶。但是也可以創建一個沒有schema的用戶(根本沒有對象)。
所以在Oracle-中,用戶就是一個帳戶而schema就是對象??赡茉谄渌臄祿炱脚_上可以創建一個沒有用戶的schema。LOGOFF不能是AFTER LOGOFF,將會重新操作,這里應該是BEFORE,否則就會報錯:替換可以插入不能有AFTER。創建或替換觸發器MYLOGOFFTRIGGER。
參考資料來源:百度百科—mySQL
當前文章:mysql里觸發器怎么用 mysql觸發器是什么
本文鏈接:http://www.yijiale78.com/article20/hhssco.html
成都網站建設公司_創新互聯,為您提供定制開發、做網站、商城網站、移動網站建設、App開發、Google
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯