创作不易,一键三连哦 喜欢博主的可以持续关注或加群一起交流(qq群:796949666)
应用场景
一个操作需要去触发另一个操作的情况下(不包括查询)
Navicate创建触发器流程
案例描述:用户余额变动同时影响余额
step1:创建表
创建用户以及余额变动日志表(不赘述)
用户表:t_user
余额日志表:user_coin_log
step2:创建触发器
选中日志表--》设计表--》触发器
参数说明:
名:这里的名字是自定义即可 最好选择全大写格式 命名易分辨
触发:即触发时机 是在当前语句执行前(BEFORE)/执行后(AFTER) 不可手写
插入/更新/删除:这里也是插入时机 是当前语句的类型即如果选择插入表示当前触发器仅检测到执行insert语句会执行 与触发时机一同解释为 执行插入前执行 ps:三选一
step3:sql书写
选中某个触发器--》在下方的定义内书写规定触发器Sql
Sql测试用例
保存即可完成触发器创建!
Sql解析:
bengin end为固定结构
if * then sql end if;为判断分支可选但为固定结构 分号不可遗漏 可以嵌套 and语法暂未考证
if嵌套语法:
step4:测试
先做充值记录
效果
我们的用户在做充值记录的时候余额也同步增加了!!!
第二步消费
看效果
ok这里看到我们的用户余额剩余50 记录也有 但相关的限制需要从其他层面做哦
比如我们的余额是否充足
一些比较敏感的应用场景需要注意触发器的前后顺序需要注意,如有会持续更新相关内容