Oracle For update研究
For update
1 select * from hjh for update [of hjh.a]; 锁定表的所有行
可以select,insert,不可以update,Delete Commit提交后,解除锁定
2 SELECT * FROM hjh WHERE a = 1 FOR UPDATE [of hjh.a]; 只锁定a=1的行
3 SELECT a.a, t1.d FROM hjh a, t1 WHERE a.a = t1.c [and a.a = 2] FOR UPDATE; 锁定两个表的中满足条件的行
4 SELECT a.a, t1.d FROM hjh a,t1 WHERE a.a = t1.c [and a.a = 2] FOR UPDATE OF a.a; 只锁定hjh中满足条件的行
加行级共享锁,然后以独占方式进行修改数据(update,delete),
你FOR UPDATE 的时候 ,其他人不能更改你查询出来的记录
commit和rollback都可以释放锁
DML锁包括table-level locks(TM)和Row-level locks(TX)
说明row-level lock(TX type)是为了确保其它用户不可以在相同的时间修改相同的行
TM 是对象锁,表示可能在这个对象上做了什么操作,还没有结束,所以不允许ddl
TX 是事务锁,表示发起了一个事务,发起事务的判别标准
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具