欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MySQL触发器简单用法示例

程序员文章站 2022-11-21 15:10:01
本文实例讲述了mysql触发器简单用法。分享给大家供大家参考,具体如下: mysql触发器和存储过程一样,是嵌入到mysql的一段程序,触发器是由事件来触发的,这些事件包...

本文实例讲述了mysql触发器简单用法。分享给大家供大家参考,具体如下:

mysql触发器和存储过程一样,是嵌入到mysql的一段程序,触发器是由事件来触发的,这些事件包括,insert,update,delete,不包括select

创建触发器

create trigger name,time,event on table_name for each row trigger_stmt

例如

复制代码 代码如下:
create trigger ins_sum before insert on account for each row set @sum = @sum + new.amount

有多个执行语句的触发器

create table test1(a1 int);
create table test2(a2 int);
create table test3(a3 int not null auto_increment primary key);
create table test4(
  a4 int not null auto_increment primary key,
  b4 int default 0
);
delimiter //
create trigger testref before insert on test1
  for each row begin
    insert into test2 set a2 = new.a1;
  delete from test3 where a3 = new.a1;
    update test4 set b4 = b4 + 1 where a4 = new.a1;
  end
  //
delimiter ;
insert into test3(a3) values (null), (null), (null), (null), (null), (null),(null), (null), (null), (null), (null), (null);
insert into test4(a4) values (0), (0), (0), (0), (0), (0), (0), (0), (0), (0);
//开始测试
insert into test1 values (1), (3), (1), (7), (1), (8), (4), (4);

查看触发器

show triggers \g; //查看所有
select * from information_schema.triggers where trigger_name = 'testref';

删除触发器

drop trigger testref;

综合案例

步骤1:创建persons表

create table persons (name varchar(40), num int);

步骤2:创建一个销售额表sales

create table sales (name varchar(40), sum int);

步骤3:创建一个触发器

create trigger num_sum after insert on persons
for each row insert into sales values (new.name,7*new.num);

步骤4:向persons表中插入记录

insert into persons values ('xiaoxiao',20),('xiaohua',69);
select * from persons;
select *from sales;

更多关于mysql相关内容感兴趣的读者可查看本站专题:《mysql查询技巧大全》、《mysql事务操作技巧汇总》、《mysql存储过程技巧大全》、《mysql数据库锁相关技巧汇总》及《mysql常用函数大汇总

希望本文所述对大家mysql数据库计有所帮助。