游标更新 for update 与for update of 字段的区别

尝试了一下,发现不同的地方在于出现表连接的时候
ex: select a.col1 from a, b where a.col1 = b.col2 and ... for udpate 
这个时候锁住了a,b两个表中满足条件的记录,而
select a.col1 from a, b where a.col1 = b.col2 and ... for update of a.col1
仅仅锁住了a表中满足条件的记录

所以for update 和for update of 还是有区别的

没有标关联的时候一样。

时间: 2024-11-03 20:58:37

游标更新 for update 与for update of 字段的区别的相关文章

【JAVA】FOR UPDATE 和 FOR UPDATE NOWAIT 区别 (转)

1.for update 和 for update nowait 的区别:首先一点,如果只是select 的话,Oracle是不会加任何锁的,也就是Oracle对 select 读到的数据不会有任何限制,虽然这时候有可能另外一个进程正在修改表中的数据,并且修改的结果可能影响到你目前select语句的结果,但是因为没有锁,所以select结果为当前时刻表中记录的状态.如果加入了for update, 则Oracle一旦发现(符合查询条件的)这批数据正在被修改,则不会发出该select语句查询,直到

oracle for update和for update nowait(for update wait)的区别

1.for update 和 for update nowait 的区别: 1.oracle 中执行select 操作读取数据不会有任何限制,当另外一个进程在修改表中的数据,但是并没有commit,所以select的结果为当前时刻表中的记录. 2.加入for update后会该表符合条件的数据进行加锁,注意的是这里只是锁定了符合条件的行,其他行还是可以被其他进程操作.其他进程若是想修改(update)当前行就会出现阻塞.就会一直等待到当前进程commit后才会被执行. 3.for update

oracle for update和for update nowait的区别

1.for update 和 for update nowait 的区别: 首先一点,如果只是select 的话,Oracle是不会加任何锁的,也就是Oracle对 select 读到的数据不会有任何限制,虽然这时候有可能另外一个进程正在修改表中的数据,并且修改的结果可能影响到你目前select语句的结果,但是因为没有锁,所以select结果为当前时刻表中记录的状态. 如果加入了for update, 则Oracle一旦发现(符合查询条件的)这批数据正在被修改,则不会发出该select语句查询,

Oracle 中for update和for update nowait的区别

http://www.cnblogs.com/quanweiru/archive/2012/11/09/2762223.html 1.for update 和 for update nowait 的区别: 首先一点,如果只是select 的话,Oracle是不会加任何锁的,也就是Oracle对 select 读到的数据不会有任何限制,虽然这时候有可能另外一个进程正在修改表中的数据,并且修改的结果可能影响到你目前select语句的结果,但是因为没有锁,所以select结果为当前时刻表中记录的状态.

oracle 中的for update 和for update nowait

1.for update 和 for update nowait 的区别: 首先一点,如果只是select 的话,Oracle是不会加任何锁的,也就是Oracle对 select 读到的数据不会有任何限制,虽然这时候有可能另外一个进程正在修改表中的数据,并且修改的结果可能影响到你目前select语句的结果,但是因为没有锁,所以select结果为当前时刻表中记录的状态. 如果加入了for update, 则Oracle一旦发现(符合查询条件的)这批数据正在被修改,则不会发出该select语句查询,

for update 和 for update nowait 的区别

首先一点,如果只是select 的话,Oracle是不会加任何锁的,也就是Oracle对 select 读到的数据不会有任何限制,虽然这时候有可能另外一个进程正在修改表中的数据,并且修改的结果可能影响到你目前select语句的结果,但是因为没有锁,所以select结果为当前时刻表中记录的状态.         如果加入了for update,则Oracle一旦发现(符合查询条件的)这批数据正在被修改,则不会发出该select语句查询,直到数据被修改结束(被commit),马上自动执行这个sele

Oracle 中 for update 和 for update nowait 的区别

原文出处http://bijian1013.iteye.com/blog/1895412 一.for update 和 for update nowait 的区别 首先一点,如果只是select 的话,Oracle是不会加任何锁的,也就是Oracle对 select 读到的数据不会有任何限制,虽然这时候有可能另外一个进程正在修改表中的数据,并且修改的结果可能影响到你目前select语句的结果,但是因为没有锁,所以select结果为当前时刻表中记录的状态. 如果加入了for update,则Ora

oracle for update和for update nowait

原文地址:http://www.cnblogs.com/quanweiru/archive/2012/11/09/2762223.html 1.for update 和 for update nowait 的区别: 首先一点,如果只是select 的话,Oracle是不会加任何锁的,也就是Oracle对 select 读到的数据不会有任何限制,虽然这时候有可能另外一个进程正在修改表中的数据,并且修改的结果可能影响到你目前select语句的结果,但是因为没有锁,所以select结果为当前时刻表中记

锁定数据行 for update和for update nowait

锁定数据行 select * from emp t where t.deptno='20' for update nowait; 这样就锁定了emp表中deptno = 20的那行数据 注意:通过for update锁定后,这些行不能修改了,但是还可以查询 for update和for update nowait 使用for update锁定行,对这行执行update,delete,select .. for update语句都会阻塞,即等待锁的释放后继续执行 使用for update nowa