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

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

相关推荐
Nontee14 小时前
MySQL 插入冲突了怎么办?两种处理方式入门笔记
数据库·笔记·mysql
ltl14 小时前
Parquet 文件格式:row group、编码与谓词下推索引
数据库
ltl14 小时前
PostgreSQL Join 路径:优化器如何选中 Nested Loop
数据库
ltl15 小时前
RocksDB 生产嵌入:Flink、TiKV 与 Kafka Streams 怎么用
数据库
devilnumber16 小时前
MySQL 性能优化・诗意化记忆
数据库·mysql·性能优化
瀚高PG实验室17 小时前
PostgreSQL pg_basebackup 和 pg_rewind 可覆盖源端超级用户选择的无关文件HGVE-2026-E010
数据库·postgresql·瀚高数据库
宠友信息18 小时前
社区类源码开发实践中的仿小红书系统技术要点分析
java·spring boot·redis·mysql·uni-app·vue·内容运营
OceanBase数据库官方博客19 小时前
亮相“十五五”公积金高质量发展大会“AI 数据库”助力智慧公积金升级
数据库·人工智能
Lyra_Infra20 小时前
MySQL Docker 误删恢复:binlog PITR
mysql·docker·命令行
龙虾PRO20 小时前
高并发场景数据库调优实操:目标定位、监控方法与优化维度全解析
数据库·oracle