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

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

相关推荐
2401_897190558 小时前
Golang怎么写TODO待办应用_Golang TODO应用教程【深入】
jvm·数据库·python
渔舟小调8 小时前
P11 | 收藏与行程:用户行为类接口的设计模式
数据库·设计模式·oracle
m0_678485458 小时前
CSS实现浮动图标与文本居中对齐_配合浮动与flex
jvm·数据库·python
做时间的朋友。8 小时前
MySQL 8.0 窗口函数
android·数据库·mysql
试试勇气8 小时前
MySQL--库的操作
数据库·mysql
2401_887724508 小时前
uni-app动画效果实现 uni-app如何使用animation API
jvm·数据库·python
m0_748839498 小时前
mysql如何处理不走索引的OR查询_使用UNION ALL优化重写
jvm·数据库·python
2401_887724508 小时前
在 Ubuntu Core 上部署 Go Web 服务的完整实践指南
jvm·数据库·python
Polar__Star8 小时前
C#怎么实现Redis分布式缓存 C#如何在ASP.NET Core中集成Redis实现分布式缓存方案【架构】
jvm·数据库·python
青城山下————9 小时前
CentOS 7(3.10 内核)成功安装 MySQL 5.7 全流程实践(附问题总结)
linux·mysql·centos