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

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

相关推荐
zhuiyisuifeng1 分钟前
PostgreSQL常用时间函数与时间计算提取示例说明
数据库·postgresql
wellc4 分钟前
MySQL Workbench菜单汉化为中文
android·数据库·mysql
Irissgwe21 分钟前
redis之常见数据类型
数据库·redis·缓存
2301_7735536224 分钟前
CSS如何对用户访问过的链接进行降级颜色处理_使用-visited伪类改变颜色
jvm·数据库·python
2301_8152795231 分钟前
Golang怎么理解Go的sync.Pool底层_Golang如何理解Pool的本地缓存和GC清理机制【详解】
jvm·数据库·python
2301_7641505631 分钟前
MySQL迁移过程如何避免数据不一致_利用强一致性备份方案
jvm·数据库·python
m0_7164300735 分钟前
Redis如何处理预热失效引起的开局雪崩
jvm·数据库·python
m0_3776182337 分钟前
c++文件锁使用方法 c++如何实现多进程文件同步
jvm·数据库·python
gmaajt42 分钟前
mysql多字段搜索如何设计组合索引_mysql索引查询加速
jvm·数据库·python
2301_7775993743 分钟前
MySQL如何快速排查慢查询安全隐患_分析slow_query_log进行优化
jvm·数据库·python