select
...
into
....
from
....
where
....
for update;
我不明白for update;
的目的是什么。
我确实理解正常更新,类似于:http://www.mkyong.com/oracle/oracle-stored-procedure-update-example/。但是无法理解for update;
及其目的。
答案 0 :(得分:2)
来自document:
SELECT FOR UPDATE语句允许您锁定中的记录 游标结果集。您无需更改记录 为了使用这个声明。当记录锁被释放时 发出下一个commit或rollback语句。
另请参阅说明的Oracle docs:
FOR UPDATE子句允许您锁定所选行以便其他行 在您结束交易之前,用户无法锁定或更新行。 您只能在顶级SELECT语句中指定此子句,而不能 在子查询中。
因此,目的非常清楚,当您想要在事务期间锁定行时使用它,以便某些其他事务无法使用它。
您还可以参考:FOR UPDATE Clause in a SELECT Statement来了解我们如何使用它。