在Oracle中如果只是使用select的话, Oracle是不会给数据加锁的。 当数据正在被另一个进程修改的时候,使用select得到的结果就不是最新的。

这就需要使用for update, 当oracle发现满足条件的记录正在被更新时,不会立即执行select语句,而是一直等待下去,直到更新结束才会执行select语句。

还有另外两种用法:

for update nowait:当oracle发现满足条件的记录正在被更新时会立即抛出异常而不是等待,我们在程序里捕获异常就能了解到底发生了什么,从而采取相应的异常处理。

for update wait 3:当oracle发现满足条件的记录正在被更新时,会等待下去,如果超过3秒更新还未结束,那么就会抛出异常。

相关文章:

  • 2021-06-10
  • 2021-08-25
  • 2022-12-23
  • 2021-08-03
  • 2022-02-26
  • 2022-12-23
  • 2022-12-23
  • 2021-05-08
猜你喜欢
  • 2022-12-23
  • 2021-11-28
  • 2021-09-09
  • 2022-12-23
  • 2022-01-01
相关资源
相似解决方案