例子,例項學習mysql觸發器的用法。
一,準備二張測試表:
1,測試表1
複製** **示例:
drop table if exists test;
create table test (
id bigint(11) unsigned not null auto_increment,
name varchar(100) not null default '',
type varchar(100),
create_time datetime,
primary key (id)
) engine=innodb auto_increment=1 default charset=utf8;
2,測試表2
複製** **示例:
drop table if exists test_hisy;
create table test_hisy (
id bigint(11) unsigned not null auto_increment,
name varchar(100) not null default '',
type varchar(100),
create_time datetime,
operation varchar(100) comment '操作型別',
primary key (id)
) engine=innodb auto_increment=1 default charset=utf8;
二,mysql觸發器例項
1,insert觸發器
表test新增記錄後,將type值為「1」的記錄同時插入到test_hisy表中(after insert:錄入後觸發, before insert:錄入前觸發)
複製** **示例:
delimiter //
drop trigger if exists t_after_insert_test//
create trigger t_after_insert_test
after insert on test
for each row
begin
if new.type='1' then
insert into test_hisy(name, type, create_time, operation)
values(new.name, new.type, new.create_time, 'insert');
end if;
end;//
2,update觸發器
表test修改時,若type值為「2」則將修改前的記錄同時插入到test_hisy表中(after update:修改後觸發, before update:修改前觸發)
複製** **示例:
delimiter //
drop trigger if exists t_before_update_test//
create trigger t_before_update_test
before update on test
for each row
begin
if new.type='2' then
insert into test_hisy(name, type, create_time, operation)
values(old.name, old.type, old.create_time, 'update');
end if;
end;//
3,delete觸發器
表test刪除記錄前,將刪除的記錄錄入到表test_hisy中(after delete:刪除後觸發, before delete:刪除前觸發)
複製** **示例:
delimiter //
drop trigger if exists t_before_delete_test//
create trigger t_before_delete_test
before delete on test
for each row
begin
insert into test_hisy(name, type, create_time, operation)
values(old.name, old.type, old.create_time, 'delete');
end;//
備註:以上觸發器例子**現的new為修改後的資料, old為修改前的資料。
mysql觸發器例項
mysql從5.0開始支援觸發器 語法 create trigger 觸發器名稱 on 表名稱 for each row 觸發器sql語句 注意 在mysql中現在還不支援利用call來呼叫儲存過程 示例 比如有論壇的版塊表和文章表,乙個版塊中有多篇文章,在版塊表中有乙個字段用來記錄版塊下的文章數。...
mysql觸發器例項
有乙個學生管理程式,涉及到學生的證書,在這個程式裡,學生可以自己新增乙個或多個證書,把自己的證書資訊新增到系統裡,之後管理員對這些資訊進行審核,確定證書的真實性。當學員的所有證書都審核通過後,學員的狀態就會變為誠信,反之,只要有乙個證書沒有審核通過,學員狀態就變為非誠信。或者是學員又重新上傳了乙個證...
mysql觸發器例項
提前祝大家新年快樂,諸事順利!接下來,記錄一些mysql觸發器的簡單例項。history 全部指標記錄表 self kpi kpi指標參照表 self kpi history kpi指標記錄表 三表itemid相同 判斷history的新增資料是否是kpi指標,如果是就將資料新增到self kpi ...