語法
create trigger 觸發器名稱 --觸發器必須有名字,最多64個字元,可能後面會附有分隔符.它和mysql中其他物件的命名方式基本程式設計客棧相象.
--觸發器有執行的時間設定:可以設定為事件發生前或後。
--同樣也能設定觸發的事件:它們可以在執行insert、update或delete的過程中觸發。
on 表名稱 --觸發器是屬於某乙個表的:當在這個表上執行插入、 更新或刪除操作的時候就導致觸發器的啟用. 我們不能給同一張表的同乙個事件安排兩個觸發器。
for each row --觸發器的執行間隔:for each row子句通知觸發器 每隔一行執行一次動作,而不是對整個表執行一次。
《觸發器sql語句》 --觸發器包含所要觸發的sql語句:這裡的語句可以是任何合法的語句, 包括復合語句,但是這裡的語句受的限制和函式的一樣。
例項準備工作
-- 建立表tab1
drop table if exists tab1;
create table tab1(
tab1_id varchar(11)
);-- 建立表tab2
drop table if程式設計客棧 exists tab2;
create table tab2(
tab2_id varchar(11)
);例項1:新增一條,觸發另外一張表的新增
-- 建立觸發器:t_afterinsert_on_tab1
-- 作用:增加tab1表yz**dhazb記錄後自動將記錄增加到tab2表中
drop trigger if exists t_afterinsert_on_tab1;
create trigger t_afterwww.cppcns.cominsert_on_tab1
after insert on tab1
for each row
begin
insert into tab2(tab2_id) values(new.tab1_id);
end;
-- 測試一下
insert into tab1(tab1_id) values('0001');
-- 看看結果
select * from tab1;
select * from tab2
例項2:刪除一條,觸發另外一張表的刪除
-- 建立觸發器:t_afterdelete_on_tab1
-- 作用:刪除tab1表記錄後自動將tab2表中對應的記錄刪去
drop trigger if exists t_afterdelete_on_tab1;
create trigger t_afterdelete_on_tab1
after dewww.cppcns.comlete on tab1
for each row
begin
delete from tab2 where tab2_id=old.tab1_id;
end;
-- 測試一下
delete from tab1 where tab1_id='0001';
-- 看看結果
select * from tab1;
select * from tab2;
例項3:更新一條,觸發另外一張表的更新
-- 建立觸發器:t_afterupdate_on_tab1
-- 作用:修改tab1表記錄後自動將tab2表中對應的記錄更新
drop trigger if exists t_afterupdate_on_tab1;
create trigger t_afterupdate_on_tab1
after update on tab1
for each row
begin
update tab2 set tab2_id=new.tab1_id where tab2_id=old.tab1_id;
end;
-- 測試一下
update tab1 set tab1_id='0002' where tab1_id='0001';
-- 看看結果
select * from tab1;
select * from tab2;
mysql 觸發器定義 mysql觸發器
什麼是觸發器 觸發器是與表有關的資料庫物件,在滿足定義條件時觸發,並執行觸發器中定義的語句集合。觸發器的這種特性可以協助應用在資料庫端確保資料的完整性。舉個例子,比如你現在有兩個表 使用者表 和 日誌表 當乙個使用者被建立的時候,就需要在日誌表中插入建立的log日誌,如果在不使用觸發器的情況下,你需...
MySQL觸發器簡單用法示例
mysql觸發器和儲存過程一樣,是嵌入到mysql的一段程式,觸發器是由事件來觸發的,這些事件包括,insert,update,delete,不包括select 建立觸發器 create trigger name,time,event on table name for each row trigg...
MySQL觸發器概念 原理與用法
觸發器 trigger 是mysql提供給程式設計師和資料分析員來保證資料完整性的一種方法,它是與表事件相關的特殊的儲存過程,它的執行不是由程式呼叫,也不是手工啟動,而是由事件來觸發,比如當對乙個表進行操作 insert,delete,update 時就會啟用它執行。簡言之 你執行一條sql語句,這...