码迷,mamicode.com
首页 > 数据库 > 详细

SQL 触发器

时间:2015-04-23 23:10:17      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:

触发器是一种特殊类型的存储过程,不由用户直接调用。

触发器(trigger)是指隐含执行的存储过程procedure,当定义触发器时必须要指定触发事件和触发的操作,通常触发事件包括insert,update,delete语句,触发器实际上就是一个pl/sql(procedure language/Structured Query Language).create trigger来创建触发器;

触发器的作用:

a.允许/限制对表的修改 

b.自动派生列,如自增字段

c.强制数据的一致性

d.提供审计和日志记录

e.防止无效的事务处理

f.启动复杂的业务逻辑

创建触发器语法:

CREATE  TRIGGER  trigger_name  trigger_time  trigger_event

ON tbl_name FOR EACH ROW trigger_stmt;

trigger_name  标识触发器名称,用户自行指定;

trigger_time    标识触发时机,用before和after替换;

trigger_event  标识触发事件,用insert,update和delete替换;

tbl_name        标识建立触发器的表名,即在哪张表上建立触发器;

trigger_stmt    触发器程序体;触发器程序可以使用begin和end作为开始和结束,中间包含多条语句;

删除触发器语法:

DROP TRIGGER [schema_name.]trigger_name

需要注意以下几点:

1、MySQL触发器针对行来操作,因此当处理大数据集的时候可能效率很低。

2、触发器不能保证原子性,例如在MYISAM中,当一个更新触发器在更新一个表后,触发对另外一个表的更新,若触发器失败,不会回滚第一个表的更新。InnoDB中的触发器和操作则是在一个事务中完成,是原子操作。

SQL 触发器

标签:

原文地址:http://www.cnblogs.com/jsonbloghome/p/4451989.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!