比較after insert、before insert、after update、before update觸發時間與事件 的觸發情況。
--建立表
create table film_text(
id smallint auto_increment,
name varchar(40),
txt text,
primary key(id)
);
對於film表在 觸發器 一 裡有提過,**就不寫了。
針對表film 建立before insert 觸發器:
--建立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 觸發器:
--建立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;
針對表film 建立 after update觸發器
--建立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觸發器
--建立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;
到現在四個觸發器建立完了。
可以做下實驗:
插入一條資料
insert into film values(null,'sunny','i like you',null);
查詢表film_text:
select * from film_text;
結果如下:
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的順序。
更新一條資料:
update film set name='sunny' where id=1;
結果如下:
| 12 | sunny | before update |
| 13 | sunny | after update |
+----+---------+-----------------+
5 rows in set
說明了 before與after的順序。 Mysql那些事兒之(十)觸發器 一
mysql從5.0.2版本開始支援觸發器的功能。觸發器是什麼?觸發器就是與表有關的資料庫物件,在滿足定義的條件時觸發,並且執行觸發器中定義的語句。我們來看一下觸發器的語法結構 create trigger trigger name trigger time trigger event on tabl...
SQL語句(二十一) 觸發器(DML觸發器)
定義 在修改指定錶值的資料時執行的儲存過程.不同的是 執行儲存過程要使用exec語句來呼叫,而觸發器的執行不需要使用exec語句來呼叫.作用 實現由主鍵和外來鍵所不能保證的複製的參照完整性和資料的一致性 他能夠對資料庫中的相關表進行級聯修改 提供比 check約束 更複雜的資料完整性,並自定義錯誤資...
觸發器一(觸發器簡介) 學習筆記
語法 create or replace trigger trigger name 建立乙個觸發器,設定名稱,如果選擇了or replace,則表示如果已經有這個觸發器就替換 befor after 指的是觸發器的觸發日間,在操作之間就beforc,在操作之後就after觸發 instead of ...