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

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

相关推荐
花间相见6 分钟前
【计算基础|MySQL09】索引(下):失效与设计
数据库·后端·面试
张宇Joaquin9 分钟前
Linux系统下磁盘扇区512n、512e和4kn的区别
linux·运维·数据库
用户62799471826211 分钟前
南大通用 GBase 8c 锁等待与死锁排查:从阻塞链到全局事务号
数据库
道虽迩,不行不至14 分钟前
数据库自动连库执行增量脚本-Linux
linux·数据库
GeW14 分钟前
新质生产力发展路线图来了,Linux和数据库人该怎么接
linux·数据库
用户1257585243622 分钟前
GoFrame Vue3开源后台管理系统推荐:数据库与Worker要求怎么验
数据库·后端·go
MaxHua26 分钟前
达梦 DTS 迁移 MySQL 报错 - 3236:此列列表已索引 解决方案
数据库·后端
用户86629784800827 分钟前
Oracle 迁 KingbaseES 全流程:从评估到割接,一个都不能少
数据库
用户86629784800835 分钟前
从 MySQL 迁到 KingbaseES,KDTS 这些参数不调会吃亏
数据库
库库的数据库笔记43 分钟前
金融核心交易系统的数据库国产信创改造该如何做?
大数据·数据库·分布式·mysql·oracle·金融·数据库架构