Mysql那些事兒之(十一)觸發器二

Mysql那些事兒之(十一)觸發器二

 

相關鏈接:

Mysql那些事兒之(一)mysql的安裝

/database/201210/162314.html;

Mysql那些事兒之(二)有關數據庫的操作

/database/201210/162315.html;

Mysql那些事兒之(三)有關數據表的操作

/database/201210/162316.html;

Mysql那些事兒之(四)數據表數據查詢操作

/database/201210/162317.html;

Mysql那些事兒之(五)操作時間

/database/201210/162318.html;

Mysql那些事兒之(六)字符串模式匹配

/database/201210/163969.html;

Mysql那些事兒之(七)深入select查詢

/database/201210/163970.html;

Mysql那些事兒之(八)索引

/database/201210/163971.html;

Mysql那些事兒之(九)常用的函數

/database/201210/164229.html;

Mysql那些事兒之(十)觸發器一

/database/201210/164516.html

 

比較after insert、before insert、after update、before update觸發時間與事件 的觸發情況。

   www.aiwalls.com  

Sql代碼  

–創建表  

create table film_text(  

id smallint auto_increment,  

name varchar(40),  

txt text,  

primary key(id)  

);  

  

對於film表在 觸發器 一 裡有提過,代碼就不寫瞭。

針對表film 創建before insert 觸發器:

 

Sql代碼  

–創建before insert 觸發器  

create trigger trigger_film_bef  –觸發器名稱為trigger_film_bef   

before insert –觸發器的時間和事件  

on film   

for each row  –行級觸發器  

begin  

   insert into film_text values(null,'sunny','before insert');  

end;  

針對表film 創建 after insert 觸發器:

 

Sql代碼  

–創建after insert 觸發器  

create trigger trigger_film_aft  –觸發器名稱為trigger_film_aft  

after insert –觸發器的時間和事件  

on film   

for each row  –行級觸發器  

begin  

   insert into film_text values(null,'sunny','after insert');  

end;  

   www.aiwalls.com  

針對表film 創建 after update觸發器

 

Sql代碼  

–創建after update 觸發器  

create trigger upd_film_aft  –觸發器名稱為upd_film_aft    

after update –觸發器的時間和事件  

on film   

for each row  –行級觸發器  

begin  

   insert into film_text values(null,'sunny','after update');  

end;  

 

針對表film 創建 before update觸發器

 

Sql代碼  

–創建before update觸發器  

create trigger upd_film_bef  

before update on film  

for each row  

begin  

insert into film_text values(null,'sunny','before update');  

end;  

   www.aiwalls.com  

到現在四個觸發器創建完瞭。

 

可以做下實驗:

插入一條數據

 

Sql代碼  

insert into film values(null,'sunny','i like you',null);  

查詢表film_text:

 

Sql代碼  

select * from film_text;  

Sql代碼  

 結果如下:  

 

Sql代碼  

mysql> select * from film_text;  

+—-+———+—————–+  

| id | name    | txt             |  

+—-+———+—————–+  

|  9 | huigui0 | thank you…… |  

| 10 | sunny   | before insert   |  

| 11 | sunny   | after insert    |  

+—-+———+—————–+  

3 rows in set  

 說明瞭 before與after的順序。

   www.aiwalls.com  

更新一條數據:

Sql代碼  

update film set name='sunny' where id=1;  

 

結果如下:

Sql代碼  

| 12 | sunny   | before update   |  

| 13 | sunny   | after update    |  

+—-+———+—————–+  

5 rows in set  

 說明瞭 before與after的順序。

 

發佈留言