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

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

相关推荐
wudl556621 分钟前
Python 虚拟环境和包管理
数据库·python·sqlite
那我掉的头发算什么27 分钟前
【数据库】事务
数据库·sql·mysql·github·数据库开发
全栈工程师修炼指南30 分钟前
DBA | Oracle 数据备份迁移之传统 exp/imp 工具实战指南
数据库·oracle·dba
自由日记36 分钟前
MySql修炼2(力扣):收了6只妖
数据库·mysql
我菜就多练43 分钟前
SQlite3
数据库·sqlite
程序猿ZhangSir1 小时前
Spring Boot 项目实现邮件推送功能 (以QQ邮箱为例)
java·数据库·spring boot
壹佰大多1 小时前
【Redisson分布式锁源码分析-3】
数据结构·分布式·mysql·spring·spring cloud·wpf·lua
梦里不知身是客112 小时前
kettle的mysql 根据条件,导出到不同的excel中
数据库·mysql·excel
sanggou2 小时前
踩坑记录:PDManer 导出 Oracle DDL 默认值成 ‘NULL‘ 字符串的排查与解决
数据库·oracle
动亦定2 小时前
MySQL 锁等待超时错误。详细解释原因和解决方案
数据库·mysql