mysql触发器

触发器格式

DELIMITER | #定义结束符为|,mysql中;是结束符,编写触发器时需要临时将结束符又改为其它字符如|,触发器结束后在改回来
CREATE TRIGGER test_update #创建名字为test_update的触发器
{BEFORE | AFTER} {INSERT | UPDATE | DELETE } ON test #在test表发生插入、更新或删除操作之前或之后触发
FOR EACH ROW #行级触发,每行发生变化时触发
BEGIN #开始触发以下脚本执行
END | #脚本执行结束

NEW 与 OLD

MySQL 中定义了 NEW 和 OLD
NEW表示发生变化后的数据,OLD表示发生变化之前的数据
在INSERT触发器中用NEW,DELETE触发器中用OLD,UPDATE触发器NEW和OLD都可以用

变量

mysql用@表示用户变量,@@表示系统变量

对变量赋值采用 SET 语句,语法为:
SET @var_name = expr [,var_name = expr] ...

也可以用如下方式定义变量

在BEGIN/END中定义变量,格式如下:
DECLARE var_name[,...] type [DEFAULT value]
其中:
var_name 为变量名称,不区分大小写;type 为 MySQL 支持的任何数据类型;可以同时定义多个同类型的变量,用逗号隔开;变量初始值为 NULL,如果需要,可以使用 DEFAULT 子句提供默认值,值可以被指定为一个表达式。
对变量赋值采用 SET 语句,语法为:
SET var_name = expr [,var_name = expr] ...

删除触发器

DROP TRIGGER IF EXISTS *test*;

另外需要注意的是,如果触发器执行失败,可能造成sql停止执行(AFTER)或数据回滚(BEFORE),使用时请多加注意

例子:

DELIMITER |  
DROP TRIGGER IF EXISTS test_update;  
CREATE TRIGGER test_update  
AFTER UPDATE ON test  
FOR EACH ROW 
BEGIN  
    SET @tt_re = (SELECT http_get(CONCAT('http://192.168.0.1:8080/my.do?id=', OLD.id)));  
END |  
DELIMITER ;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个节点

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值