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

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

相关推荐
2501_921939267 分钟前
MHA高可用
数据库·mysql
_Evan_Yao28 分钟前
MySQL 基础:SELECT、WHERE、JOIN 的第一次使用
数据库·mysql
weixin_444012931 小时前
c++如何将std--vector直接DUMP到二进制文件_指针地址直写【附代码】
jvm·数据库·python
woxihuan1234561 小时前
Go语言中--=运算符详解:位右移赋值操作的原理与应用
jvm·数据库·python
java1234_小锋2 小时前
SpringBoot为什么要禁止循环依赖?
java·数据库·spring boot
神仙别闹2 小时前
基于QT(C++)实现学生成绩管理系统
数据库·c++·qt
m0_690825822 小时前
如何备份被破坏的数据表_强制跳过错误的导出尝试
jvm·数据库·python
tongyiixiaohuang2 小时前
轻易云平台助力快麦数据入库MySQL
android·数据库·mysql
残 风2 小时前
快速理解什么是MVCC?
数据库·postgresql·oracle·数据库开发
m0_733565462 小时前
JavaScript中Reflect-ownKeys获取所有键名的优势
jvm·数据库·python