MySQL 如何实现乐观锁?

MySQL 如何实现乐观锁?

可以基于版本号实现乐观锁,修改数据的时候带上版本号(或者时间戳):

sql 复制代码
UPDATE student SET name = '小李', version = 2 WHERE id = 100 AND version = 1

在每次数据更新的时候,都带上版本号,同时将版本 + 1,比如现在要更新 id = 1,版本号为 2 的记录,这时候就要先获取 id = 1的版本号,然后更新语句写成

sql 复制代码
UPDATE table SET name = "小明",version = version + 1 WHERE id = 1 and version = 2

如果这个版本号与表记录中的版本号一致的话,就能更新成功,如果不相等就不进行更新,然后需要重新获取该记录的最新版本号,再进行更新数据

相关推荐
Arbori_2621532 分钟前
Oracle 排除交集数据 MINUS
数据库·oracle
yzhSWJ35 分钟前
MySQL 中查询 VARCHAR 类型 JSON 数据的
mysql·adb·json
java1234_小锋4 小时前
MySQL中有哪几种锁?
数据库·mysql
Charlie__ZS5 小时前
Redis-事务
数据库·redis·缓存
Charlie__ZS5 小时前
Redis-数据类型
数据库·redis·缓存
神奇小永哥5 小时前
redis之缓存击穿
数据库·redis·缓存
莳花微语6 小时前
记录一次因ASM磁盘组空间不足,导致MAP进程无法启动
数据库·oracle
zybishe6 小时前
免费送源码:Java+ssm+MySQL 酒店预订管理系统的设计与实现 计算机毕业设计原创定制
java·大数据·python·mysql·微信小程序·php·课程设计
红云梦7 小时前
互联网三高-数据库高并发之分库分表
数据库·高并发·三高架构
王军新7 小时前
MySQL索引介绍
数据库·mysql