MYSQL觸發器入門

2021-07-31 22:13:38 字數 1890 閱讀 7093

~~語法~~
create 

trigger 

觸發器名  --觸發器必須有名字,最多64個字元,可能後面會附有分隔符.它和mysql中其他物件的命名方式基本相象.

--觸發器有執行的時間設定:可以設定為事件發生前或後。

--同樣也能設定觸發的事件:它們可以在執行insert、update或delete的過程中觸發。

on 表名  --觸發器是屬於某乙個表的:當在這個表上執行插入、 更新或刪除操作的時候就導致觸發器的啟用. 我們不能給同一張表的同乙個事件安排兩個觸發器。

for 

each 

row--觸發器的執行間隔:

for each row子句通知觸發器 每隔一行執行一次動作,而不是對整個表執行一次。

觸發器sql語

--觸發器包含所要觸發的sql語句:這裡的語句可以是任何合法的語句, 包括復合語句,但是這裡的語句受的限制和函式的一樣。

new 與 old 詳解

上述示例中使用了new關鍵字,和 ms sql server 中的 inserted 和 deleted 類似,mysql 中定義了 new 和 old,用來表示

觸發器的所在表中,觸發了觸發器的那一行資料。

具體地:

在 insert 型觸發器中,new 用來表示將要(before)或已經(after)插入的新資料;

在 update 型觸發器中,old 用來表示將要或已經被修改的原資料,new 用來表示將要或已經修改為的新資料;

在 delete 型觸發器中,old 用來表示將要或已經被刪除的原資料;

使用方法: new.columnname (columnname 為相應資料表某一列名)

另外,old 是唯讀的,而 new 則可以在觸發器中使用 set 賦值,這樣不會再次觸發觸發器,造成迴圈呼叫(如每插入乙個學生前,都在其學號前加「2013」)。

檢視觸發器

和檢視資料庫(show databases;)檢視**(show tables;)一樣,檢視觸發器的語法如下:

作用是 增加tab1表記錄之後 自動將記錄新增到tab2表中

create trigger   t_afterinsert_ontab1

after insert on  tab1

for each row

begin 

insert into tab2(tab2_id) values(new.tab1_id) ;

end  ;

insert into tab1 (tab1_id) values(100);

select * from tab1 ;

select * from tab2 ;

作用是 當刪除tab1表記錄的後 會自動將tab2中的對應的記錄刪除

create  trigger  afterdeletetrriger 

after  delete on tab1

for each  row 

begin

delete from tab2  where tab2_id=old.tab1_id ;

end ;

delete from tab1  where tab1_id= 100 ;

select * from tab2 ;

MySQL 觸發器入門

mysql 5.1包含對觸發器的支援。觸發器是一種與表操作有關的資料庫物件,當觸發器所在表上出現指定事件時,將呼叫該物件 即表的操作事件觸發表上的觸發器的執行。在mysql中,建立觸發器語法如下 create trigger trigger name trigger time trigger eve...

觸發器 mysql觸發器

觸發器是一種特殊的儲存過程,它在插入 刪除或修改特定表中的資料時觸發執行,它比資料庫本身標準的功能有更精細和更複雜的資料控制能力。和儲存過程一樣,很少使用。1 觸發器的作用 2 建立觸發器 建立測試環境 mysql create database test db query ok,1 row aff...

mysql之觸發器入門

觸發器語法 create trigger 觸發器名稱 觸發器必須有名字,最多64個字元,可能後面會附有分隔符.它和mysql中其他物件的命名方式基本相象.觸發器有執行的時間設定 可以設定為事件發生前或後。同樣也能設定觸發的事件 它們可以在執行insert update或delete的過程中觸發。on...