博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql insert into...select...不产生锁问题
阅读量:7114 次
发布时间:2019-06-28

本文共 509 字,大约阅读时间需要 1 分钟。

hot3.png

业务需求:一个人一天只能有一次签到,多客户端同时点击签到,异常场景:虽然代码里面有判断是否重复签到的逻辑,但是在极短的时间内,在多个客户端签到,可能会出现多次签到成功技术背景:mysql、mybatis实现思路:插入前查询一下表里面是否存在 userId 和 signDate 的数据,如果存在则不插入。具体实现:
insert into sign_201804(
) select #{id},#{userId},#{signDate},#{bonus},#{lat},#{lng}... FROM DUAL where NOT EXISTS ( select userId from sign_201804 where userId = #{userId} and signDate = #{signDate} )
SELECT LAST_INSERT_ID()

转载于:https://my.oschina.net/duo8523/blog/1794147

你可能感兴趣的文章
JavaScript 小数取整的函数
查看>>
小程序flex-direction
查看>>
编程基本功(一)
查看>>
迭代器随笔
查看>>
flex布局居中无效果注意是否设置了宽度
查看>>
Bootstrap学习笔记系列5------Bootstrap图片显示
查看>>
CentOS服务器下对mysql的优化
查看>>
linux内核模块开发
查看>>
android 小结
查看>>
【转】Android 基于Socket的聊天室
查看>>
小记录
查看>>
ubuntu安装完无法用xshell,远程链接
查看>>
C# 对象哈希码
查看>>
高效的JS数组操作
查看>>
Oracle计算时间差函数
查看>>
Jenkins入门系列之——01第一章 Jenkins是什么?
查看>>
在Ubuntu上搭建hive环境
查看>>
二分法查找
查看>>
hmac检验客户端合法性
查看>>
python-webbrowser模块 浏览器操作
查看>>