Mysql那些事兒之(十一)觸發器二
相關鏈接:
Mysql那些事兒之(一)mysql的安裝
http://www.BkJia.com/database/201210/162314.html;
Mysql那些事兒之(二)有關數據庫的操作
http://www.BkJia.com/database/201210/162315.html;
Mysql那些事兒之(三)有關數據表的操作
http://www.BkJia.com/database/201210/162316.html;
Mysql那些事兒之(四)數據表數據查詢操作
http://www.BkJia.com/database/201210/162317.html;
Mysql那些事兒之(五)操作時間
http://www.BkJia.com/database/201210/162318.html;
Mysql那些事兒之(六)字符串模式匹配
http://www.BkJia.com/database/201210/163969.html;
Mysql那些事兒之(七)深入select查詢
http://www.BkJia.com/database/201210/163970.html;
Mysql那些事兒之(八)索引
http://www.BkJia.com/database/201210/163971.html;
Mysql那些事兒之(九)常用的函數
http://www.BkJia.com/database/201210/164229.html;
Mysql那些事兒之(十)觸發器一
http://www.BkJia.com/database/201210/164516.html
比較after insert、before insert、after update、before update觸發時間與事件 的觸發情況。
www.2cto.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.2cto.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.2cto.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.2cto.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的順序。