您的位置:首页 > 数据库 > MySQL

mysql 触发器的使用

2012-03-28 11:23 232 查看
1、触发器:trigger,在sql insert update delete命令之前(before)或之后(after)之后执行该触发。

2、语法:

create trigger trigger_name

before|after

insert|update|delete

on table_name

for each row

code

3、如何访问当前记录的各个字段

OLD.column_name(返回一条现有记录在被修改或删除之前的内容 UPDATE DELETE)

NEW.column_name(返回一条新记录或被修改记录的新内容 INSERT UPDATE)

4、实例

目录表:tv_dir(id,name,xcount) 目录明细表:tv_dir_detail(id,dir_id,tv_id)

实现这样的一个功能:在目录明细表中添加一条记录或插入一条记录时,修改目录表中的xcount。

create trigger tv_dir_detail_insert

after insert on tv_dir_detail for each row

update tv_dir set xcount=xcount+1 where id=NEW.dir_id

create trigger tv_dir_detail_delete

after delete on tv_dir_detail for each row

update tv_dir set xcount=xcount-1 where id=OLD.dir_id

5、注意:

a。触发器的表必须是实表。不能是视图。

b。一个表最多定义6个触发器

c。受触发器影响的记录都执行一遍

6、在Navicat中定义触发器。

选中一张表,右击“设计表”,然后表设计中选择触发器。然后在下列表中输入名,选择After|before,选择(插入|刷新|删除)

然后在定义中写code。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: