mysql tirgger update 数据库更新触发器

5 篇文章 0 订阅
项目里的需求: 提现表,支付宝信息被修改,怎么限制, 插入的数据针对字段不被修改
delimiter //
CREATE TRIGGER users_withdraw_update  BEFORE UPDATE ON users_withdraw
       FOR EACH ROW
       BEGIN
           IF OLD.alipay_num is not null THEN
               SET NEW.alipay_num = OLD.alipay_num,NEW.money= OLD.money,NEW.real_money=OLD.real_money;
           END IF;
       END;//
delimiter ;
针对字段剖析:
  1. users_withdraw_update 触发器的自定义名称
  2. before 在…之前
  3. update 表示用来监听更新语句的
  4. users_withdraw 表名
  5. for each row 针对每条更新数据都有效
  6. OLD.alipay_num 表示修改这条记录的原始值,NEW.alipay_num 表示要修改成为的值
命令执行完之后, 可以尝试测试下触发器, 使用update 语句, 此触发器只针对,alipay_num,money,real_money 三个字段不能修改, 其余字段不影响

官方tirgger手册介绍

顺便说下delimiter, 对于没有深究mysql语言的, 有可能会懵逼,网上的讲解mysql trigger的实例 为什么写法都不同, 我就是懵逼的一员

delimiter是mysql分隔符,在mysql客户端中分隔符默认是分号";" 大家都知道mysql>执行的命令 ,然后加上";" 之后回车才执行,不然不执行.我上面的例子代表 delimiter 定好结束符为"//", 用完之后最后又重新定义为";"

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值