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数据库计有所帮助。
上一篇: MySQL服务器线程数的查看方法详解
下一篇: 朋友被阿里面试官灵魂拷问,跑来求救