Mysql 触发器

来源:互联网 发布:域名代备案 编辑:程序博客网 时间:2024/06/03 18:53

TRIGGER的用途是在INSERT,UPDATE,DELETE命令之前或之后自动调用SQL命令或者SP。
语法 
      create trigger name
      before|after 
      insert|update|delete
      on tablename
      for each row
      begin
                code
      end


在触发器中,可以通过以下方式去访问当前记录的各个字段。
OLD.columnname返回一条现有记录在被修改或删除之前的内容(UPDATE,DELETE)
NEW.columnname返回一条新记录或被修改记录的新内容(INSERT,UPDATE)

例子:

班级表
 create  table class(
  id int primary key,
  name varchar(20),
  count int default 0
 )
学生表
 create  table stu(
  id int primary key,
  name varchar(20),
  cid int ,
  foreign key(cid) references class(id)
 )

create trigger stu_tri
 after insert
 on stu
 for each row  
 begin
  update class
  set count = count +1
  where id = NEW.cid;
 end

定义触发器的表必须是永久性表。不能将触发程序与TEMPORARY表或视图关联起来。
一个数据表最多定义6个触发器
触发器为受影响的记录,都执行一遍。

原创粉丝点击