数据库插入数据时添加校验判定(亲测有效)

今天在复查自己实现的收藏模块时候,发现之前少考虑了一种场景:人员在管理文件夹页面删除文件夹及连接,但是在连接收藏页面不刷新页面,继续收藏时,原始的无条件判定Insert语句会成功插入数据,经过网上搜索,看到了很多选择方案:

①plsql的package或者存储过程都可实现

②oracle的触发器

③平常SQL(数据库级别锁处理,由于自己没有oracle库存储过程权限,因此先发出这种,后续有时间补充上面两点)

之前在网上看到的点③描述为:https://blog.csdn.net/fuck487/article/details/77189658

但是实践根本无法执行,因此自己进行了封装如下:

INSERT INTO TABLE
           (字段1,
            字段2,
            字段3)
          SELECT T.字段1,
                 T.字段2,
                 T.字段3
            FROM (SELECT cloum1 AS 字段1,                    //这里的cloum1值可使用#{}方式注入
                         cloum2 AS 字段2,
                         cloum2 AS 字段3
                    FROM DUAL) T
           WHERE EXISTS (SELECT ID
                    FROM TABLE S
                   WHERE S.ID = #{PARENT_ID}
                     AND S.DJXH = #{DJXH})

以上为我的实现方式,如有更优方案,欢迎留言讨论哦

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值