INSERT INTO IF NOT EXISTS(插入集合)

背景项目
学生登陆系统 - 之后会根据模板规则进行试卷的抽取,这些试题均直接从数据库中拿取,然后把抽取完的试题插入到学生试题记录表来存储学生试卷,然后把学生的状态从未登录更新到已抽卷。第一次拿取时因为题库的数据很多,导致界面不能立即拿到数据进行显示,当用户进行刷新时因为整个流程没有走完而进行的又是插入操作就会导致学生记录表中出现两套该学生的试卷
解决思路
主要症结的英文因为从数据库中拿数据比较慢,所以小伙伴再次加了一个预加载将这一门所有的试题在考试前放到Redis的,加一个版本字段进行标识,也就是先查后插,尴尬的就是乐观锁只要是用来更新的,如果是插入这个先查的位置放哪呢,并不能解决问题,于是就想在插入的时候有条件的插入就像更新操作时候一样.然后找到了这个语法
INSERT INTO IF NOT EXISTS
demo
http://www.codebit.cn/mysql/insert-if-not-exists.html
这个是参考的一个小demo,网上的demo基本都是单条数据的插入,因为我们是集合的插入,在写sql的时候还是遇到了一点小麻烦,最后还是解决了,代码如下

 <insert id="insertAllPaperRecord" parameterType="com.dmsdbj.itoo.examinationEvaluation.entity.PaperRecordEntity">

        insert into t_paper_record
        (id,
        remark,
        operator,
        is_delete,
     
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值