【mysql 触发器】触发器使用

来源:互联网 发布:php ajax提交form表单 编辑:程序博客网 时间:2024/05/01 12:16

1、了解什么是触发器?

mysql 的触发器和存储过程一样,都是嵌入到mysql的一段程序,触发器 是由事件触发某个动作,这些事件包括,插入 ,更新、删除等语句。如果定义了触发程序,触发器就会触发执行相应的操作。

触发器( trigger)是个特殊的存储过程,不同的是,执行存储过程要使用CALL语句来调用,而触发器的执行不需要使用CALL语句来调用,也不需要手工启动,只要当一个预定义的事件发生的时候,就会被 MYSQL自动调用。比如当对 fruits表进行操作( INSERT、 DELETE或 UPDATE)时就会激活它执行。触发器可以查询其他表,而且可以包含复杂的SQL语句。它们主要用于满足复杂的业务规则或要求。例如:可以根据客户当前的账户状态,控制是否允许插入新订单。本节将介绍如何创建触
发器。

2、查看触发器

show TRIGGERs;

3、删除触发器

drop trigger num_sum;

4、创建触发器

下面用一个案例讲解

4.1、创建业务统计表

CREATE TABLE `persons` (  `name` varchar(40) NOT NULL,  `num` int(11) NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='业务统计表';

4.2、创建销售表

CREATE TABLE `sales` (  `name` varchar(40) NOT NULL,  `sum` int(11) NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='销售额表';

4.3、创建一个触发器

CREATE TRIGGER num_sum AFTER INSERT on persons for EACH ROW INSERT INTO sales VALUES(NEW.name,7*NEW.num);

4.4、向person表中插入记录

INSERT into persons VALUES('zhangsan',20),('laidefa',24);

4.5、查询persons表 和sales表

SELECT * from persons;SELECT * from sales;
name    numzhangsan    20laidefa 24
name    sumzhangsan    140laidefa 168

从执行的结果来看,在persons表插入数据之后,num_sum触发器,把数据同时插入 到sales 表

5.总结

5.1、使用触发器时需要特别注意,对于相同的表 和相同的事件,只能创建一个触发器。

5.2、及时删除不再需要的触发器.

原创粉丝点击