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

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

相关推荐
亚空间仓鼠7 分钟前
NoSQL数据库Redis(一):数据库基础
数据库·redis·nosql
weixin_5806140024 分钟前
如何防止SQL注入利用存储过程_确保存储过程不拼字符串.txt
jvm·数据库·python
james的分享24 分钟前
向量数据库之Milvus
数据库·milvus
weixin_4087177739 分钟前
mysql权限表查询性能如何优化_MySQL系统权限缓存原理
jvm·数据库·python
吕源林39 分钟前
怎么优化MongoDB的软删除设计_布尔标记与删除时间戳
jvm·数据库·python
想唱rap41 分钟前
C++智能指针
linux·jvm·数据结构·c++·mysql·ubuntu·bash
吕源林1 小时前
如何解决SQL存储过程连接泄露_确保在异常后关闭连接
jvm·数据库·python
Gofarlic_OMS1 小时前
应对MathWorks合规审查的专项准备工作
大数据·服务器·网络·数据库·人工智能
七夜zippoe1 小时前
DolphinDB SQL查询:从基础到进阶
数据库·sql·进阶·聚合·dolphindb
wq_1 小时前
Mysql-MVCC
mysql·面试