mysql觸發器
定義:在資料庫某個條件成立時候。你觸發器裡面所定義的語句自動會被執行。觸發器不需要人為的呼叫,也不能呼叫。
個人理解使用地方:在使用者註冊資訊的時候,有時候需要初始化一些資訊,這個時候就可以用觸發器去執行一些sql語句,,
減少專案**裡面對於每次都需要判斷是否存在使用者相關資訊的判斷。。註冊時候使用觸發器很高效,減少**量!
特點:
觸發器:語句級觸發和行級觸發。。
語句級觸發:可以在某些語句執行前或執行後被觸發,
行級觸發器:則是在定義了觸發的表中的行資料改變時就會被觸發一次。
乙個表上最多可以有12個觸發器,但同一時間、同一事件、同一型別的觸發器只能有乙個。如果確實需要,可以先建立過程,然後在觸發器中用call語句。
簡單案例:
(說明:users表插入資訊的時候,在article和posts表插入兩條與之對應的預設資訊)
create trigger `add_articles` after insert on `users` for each row begin
insert into article(uid,title,content) values(new.id,'你好','謝謝');
insert into posts(uid,title,content) values(new.id,'你好','謝謝');
end;
擔心的問題:
我們建立的資料庫一般都是 innodb 資料庫,其上建立的表是事務性表,也就是事務安全的。這時,若sql語句或觸發器執行失敗,mysql 會回滾事務,有:
①如果 before 觸發器執行失敗,sql 無法正確執行。
②sql 執行失敗時,after 型觸發器不會觸發。
③after 型別的觸發器執行失敗,sql 會回滾。
mysql 觸發器簡單使用
觸發器 trigger 監視某種情況,並觸發某種操作。觸發器建立語法四要素 1.監視地點 table 2.監視事件 insert update delete 3.觸發時間 after before 4.觸發事件 insert update delete 語法 create trigger trigg...
mysql的觸發器簡單使用
delimiter create definer trigger test test before after insert update delete 在增刪改之前或之後的操作 on test 表明 for each row begin mysql 區 end delimiter 在mysql 區...
mysql觸發器簡單操作使用
mysql的觸發器,我一般是用在主表上面去維護子表的,比如多對多的關係或者一對多經常保持資料的一致性,需要使用觸發器去操作,觸發器的語法也很簡單,create trigger trigger name trigger time trigger event on tbl name for each r...