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

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

相关推荐
dishugj2 小时前
【Oracle】Oracle rac1 节点ora.chad offline解决方案
数据库·oracle
木子02042 小时前
oracle里面inner join 和left join 的区别
数据库·oracle
数据库人生2 小时前
Oracle RANGE分区表 HIGH_VALUE 获取
数据库·oracle·dbms_xmlgen·high_value
他们叫我技术总监2 小时前
Oracle 11g 实战进阶:LONG类型字段超长模糊查询终极方案(附表空间GB级监控优化)
数据库·oracle
华章酱2 小时前
MySQL EXPLAIN 完全解读:从执行计划到索引优化
android·数据库·mysql
木子02042 小时前
sql 计算年龄
数据库·sql
Coder_Boy_2 小时前
【Java核心】企业级高并发系统底层设计思想
java·前端·数据库·spring boot·高并发
知识即是力量ol2 小时前
口语八股:Redis 面试实战指南——基础篇、持久化篇
数据库·redis·面试·八股
学到头秃的suhian2 小时前
Redis的Java客户端
java·数据库·redis
yueyin1234563 小时前
在Django中安装、配置、使用CKEditor5,并将CKEditor5录入的文章展现出来,实现一个简单博客网站的功能
数据库·django·sqlite