mysql触发器返利_MySQL之触发器

本文主要介绍MySQL中触发器的相关知识与应用,为什么使用触发器,以及如何使用触发器。

I、触发器简介

如果我们想要在某个表发生更改时自动处理一些事情,就应该使用触发器,触发器是MySQL响应以下任意语句而自动执行的一条语句(位于BEGIN与END之间的一组语句):

· DELETE;

· INSERT;

· UPDATE;

其他语句不能触发触发器。

II、创建触发器

1、在创建触发器的时候,需要给出如下信息:

· 触发器名;

· 触发器关联的表;

· 触发器应该响应的活动(三条语句);

· 触发器何时执行(处理之前或之后);

2、使用CREAT TRIGGER语句创建触发器:

# CREATE TRIGGER

> CREATE TRIGGER newproduct AFTER INSERT ON test

FOR EACH ROW SELECT 'Product added';

上面例子中触发器的作用是:对每个插入的行显式一次'Product added'.

III、删除触发器

# DROP TRIGGER

> DROP TRIGGER newproduct

IV、使用触发器

4.1 INSERT触发器

1、在INSERT触发器代码内,可以引用一个名为NEW的虚拟表,访问被插入的行;

2、在BEFORE INSERT触发器中,NEW中的值也可以被更新(允许更改被插入的值);

3、对于AUTO_INCREMENT列,NEW在INSERT执行之前包含0,在INSERT执行之后包含新的自动生成值。

下面举一个例子:

# CREATE TRIGGER

> CREATE TRIGGER neworder AFTER INSERT ON orders

FOR EACH ROW SELECT NEW.order_num;

触发器neworder从NEW.order_num取得这个值并返回它。

# INSERT

> INSERT INTO order VALUES(Now(), 10001);

4.2 DELETE触发器

1、在DELETE触发器代码内,可以引用一个名为OLD的虚拟表,访问被删除的行;

2、OLD中的值都是只读的,不能更新;

4.3 UPDATE触发器

1、在UPDATE触发器代码中,可以引用一个OLD虚拟表访问以前的值,引用一个名为NEW的虚拟表访问更新的值;

2、在BEFORE UPDATE触发器中,NEW中的值可能也被更新;

3、OLD虚拟表中的值都是只读的,不能更新;

4.4 例题

【参考】

[1] 《MySQL必知必会》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值