利用SQL触发器实现业务逻辑实例

前言

在一些特定情况下,不需要经过人为确认,自动对特定表添加操作,使用sql触发器将极大地简化业务流程配置。在无代码平台中可代替逻辑配置,实现业务的正常运行。


一、触发器是什么?

触发器可看做是一种“特殊”的存储过程,它定义了一些在数据库相关事件如(DML和DDL操作)发生时应执行的“功能代码模块”,通常用于管理复杂的完整性约束,或监控对表的修改,或通知其他程序,甚至可以实现对数据的审计功能。

二、实例

现在有两张表,计划表和任务表。计划表通过用户选择开始日期和结束日期以及执行周期和次数,系统将生成多行任务数据。并满足计划名称-n的命名规范。

1.设计触发器

代码如下(示例):

#实现1对多新增的行级触发器
#根据计划表的task_num字段往任务表中添加相应数量的数据
create trigger tri_plan_mask
  after update
  on t_plan
  for each row
    begin
      declare num int;
      declare t_num int;
      if new.task_num is not null and new.start_date is not null then
        set num = 0;
        set t_num = new.task_num;
        while num < t_num do
          insert into task_management(task_name,data_id,provisional_date)
          values ((select concat(new.plan_name,'-',num)),uuid(),new.provisional_date);
          set num = num + 1;
        end while;
      end if;
    end tri_plan_mask;

2.插入数据及结果

如下(示例):
在这里插入图片描述
例如计划表中发动机维护计划先让用户填写填写完数据,得到task_num的值。根据命名规范生成发动机维护-n的任务名。

结果如下:
在这里插入图片描述

总结

触发器容易占用过多资源,使用时候需要考虑执行效率。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值