觸發器是與表有關的資料庫物件,在滿足定義條件時觸發,並執行觸發器中定義的語句集合。
觸發器的特性:
1、有begin end體,begin end;之間的語句可以寫的簡單或者複雜
2、什麼條件會觸發:i、d、u
3、什麼時候觸發:在增刪改前或者後
4、觸發頻率:針對每一行執行
5、觸發器定義在表上,附著在表上。
也就是由事件來觸發某個操作,事件包括insert語句,update語句和delete語句;可以協助應用在資料庫端確保資料的完整性。
!!盡量少使用觸發器,不建議使用。
假設觸發器觸發每次執行1s,insert table 500條資料,那麼就需要觸發500次觸發器,光是觸發器執行的時間就花費了500s,而insert 500條資料一共是1s,那麼這個insert的效率就非常低了。因此我們特別需要注意的一點是觸發器的begin end;之間的語句的執行效率一定要高,資源消耗要小。
觸發器盡量少的使用,因為不管如何,它還是很消耗資源,如果使用的話要謹慎的使用,確定它是非常高效的:觸發器是針對每一行的;對增刪改非常頻繁的表上切記不要使用觸發器,因為它會非常消耗資源。
create trigger 觸發器名 before|after 觸發事件 on 表名 for each row 執行語句;
觸發事件:
例子:建立乙個名字叫newproduct的觸發器,在操作insert後觸發,該觸發器質指定了對每個插入行執行,當對每個成功的插入,都顯示product added資訊
create trigger newproduct
after insert on products
for each row select 'product added';
每個表每個事件只允許乙個觸發器,因此,每個表最多支援6個觸發器。
2、建立有多個執行語句的觸發器
create trigger 觸發器名 before|after 觸發事件例2:定義乙個觸發器,一旦有滿足條件的刪除操作,就會執行begin和end中的語句on 表名 for each row
begin
執行語句列表
end;
mysql> delimiter ||
mysql> create trigger trig2 before delete
-> on work for each row
-> begin
-> insert into time values(now());
-> insert into time values(now());
-> end||
mysql> delimiter ;
drop trigger [if exists] [schema_name.]trigger_name刪除觸發器之後最好使用上面的方法檢視一遍;同時,也可以使用database.trig來指定某個資料庫中的觸發器。
tips:
如果不需要某個觸發器時一定要將這個觸發器刪除,以免造成意外操作,這很關鍵。
觸發器 mysql觸發器
觸發器是一種特殊的儲存過程,它在插入 刪除或修改特定表中的資料時觸發執行,它比資料庫本身標準的功能有更精細和更複雜的資料控制能力。和儲存過程一樣,很少使用。1 觸發器的作用 2 建立觸發器 建立測試環境 mysql create database test db query ok,1 row aff...
my sql 觸發器 mysql建立觸發器
首先,我們來了解一下什麼是觸發器,觸發器,就是在對一張表資料進行增 insert 刪 delete 改 update 的時候,為了保持資料的一致性,對別的表也要進行相應的資料修改。我們都知道mysql最後事務提交後,資料是會儲存到磁碟上的,那麼每次在insert,delete,update時候舊資料...
my sql 觸發器 MySQL檢視觸發器
檢視觸發器是指檢視資料庫中已經存在的觸發器的定義 狀態和語法資訊等。mysql 中檢視觸發器的方法包括 show triggers 語句和查詢 information schema 資料庫下的 triggers 資料表等。本節將詳細介紹這兩種檢視觸發器的方法。show triggers語句檢視觸發器...