关于数据库操作的触发器

来源:互联网 发布:个人怎么开通淘宝直播 编辑:程序博客网 时间:2024/05/22 18:21

触发器是特定事件出现的时候,自动执行的代码块。类似于存储过程,但是用户不能直接调用他们。

功能:

1、允许/限制对表的修改

2、自动生成派生列,比如自增字段

3、强制数据一致性

4、提供审计和日志记录

5、防止无效的事务处理

6、启用复杂的业务逻辑

举例:

触发器:create trigger trigger_name(标识触发器名称,用户指定)  trigger_time(after/before)  trigger_event(标识出发时间,如insert/update/delete)  on tbl_name(标识简历触发器的表名)  for each  row  trigger_stmt  (触发器程序体);

但是在触发程序体中可能存在;结束符,这时候就要用到Delimiter定界符,让程序执行时不会将;

当做结束符号,用$替代。

例:有俩张表格

班级(class.Id,class.count)

学生(student.name,student.Id,student.ClassId)

创建一个触发器,当插入一个学生数据时,更新这个学生的班级学生总数

Delimiter $

create trigger triggle.class after insert on student for each row

begin

set c int

c=(select class.count from class where class.Id=new.Id)

update class set class.count=c+1 where class.Id=new.Id;

end $

Delimiter ;