mysql條件觸發器例項 mysql觸發器例項一則

2021-10-19 21:29:25 字數 2304 閱讀 2903

例子,例項學習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 ...