mysql 触发器的使用

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。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值