(Mysql 五)觸發器的使用

2021-07-26 21:35:52 字數 1908 閱讀 5119

1.觸發器的作用

2.delimiter的作用

3.觸發器的實現

4.new 和 old 的使用

1.觸發器的作用:

觸發器用於操作乙個表的時候同時能夠操作另乙個表。例如,在a表中,新增乙個資訊,然後同時自動在b表中新增相同的資訊。

當然在a表中,新增資料時,同時自動在b表中刪除資料也可以。反正就是只要 發生對a表指定的操作,就會觸發設定好的對b表的操作。

這樣做,當兩個表有關聯時,可以很方便。

2.delimiter的作用:

3.觸發器的實現:

觸發器的建立例子:

第一行

:表示分隔符換成 $$

第二行:create trigger 為固定格式,t1 為觸發器的名字,before

insert on zje 表示當 zje表 進行 insert 操作 之前。觸發觸發器語句。

當然,before可以換成after 表示觸發器在對zje表操作之後執行。而 insert 的位置只有(insert,update,delete)這三個能填,select不能。

第三行:for each row 是固定格式。

第四行和第六行:begin 和 end 也是固定格式。而end後跟的必須是分隔符。

第五行:是觸發器執行的語句

上述的全部語句表示:建立乙個觸發器,作用為 在對 zje 表進行insert 之前,把eva表中 chin欄位少於60的資料刪除。

檢視是否建立了觸發器:

show triggers from zje;//表示檢視 zje表中的所有觸發器。

刪除觸發器:

drop trigger trigger_name ; //刪除名為 trigger_name的觸發器

4.new和old的使用:

如:

delimiter $$

create trigger t1 before update on zje

for each row

begin

set @arg1 = new.math;

set @arg2 = old.math;

end$$

delimiter ;

例如一開始 zje中xiaoming的mat成績是59,對zje表進行,update zje set math = math + 1 where name=「xiaoming」;

而arg1 = 60,而arg2 = 59;

換言之,new表示對錶zje操作之後的數,而old則是表zje在被操作之前的數

積分觸發器 mysql 觸發器的使用

將多個資料庫中的某列資料同步時需要用到mysql觸發器,以下可做參考,已簡單測試ok.修改紅棗的積分時觸發 drop trigger if exists u hongzaocount delimiter create trigger u hongzaocount after update on ho...

mysql 觸發器 觸發器使用

1 了解什麼是觸發器?mysql 的觸發器和儲存過程一樣,都是嵌入到mysql的一段程式,觸發器 是由事件觸發某個動作,這些事件包括,插入 更新 刪除等語句。如果定義了觸發程式,觸發器就會觸發執行相應的操作。觸發器 trigger 是個特殊的儲存過程,不同的是,執行儲存過程要使用call語句來呼叫,...

觸發器(五 復合觸發器)

oracle11g開始提供了一種復合觸發器,簡單的說就是支援把語句級和行級觸發器組合在一起。實際應用場景不多,這裡就做個記錄。與單個觸發器語法有所區別 1.單個觸發器的頭部是 before after 動作 on 物件 for 觸發級別 而組合觸發器的頭部是 for 動作 on 物件 compoun...