数据库的区别
摘要:北大青鸟中关村数据库Oracleforupdateof和update区别forselect*fromTTable1forupdate锁定表的所有行,只能读不能写2select*fromTTable1wherepkid=1forupdate只锁定pkid=1的行3select*fromTable1ajoinTable2bona.pkid=b.pkidforupdate锁定两个表的所有记录4select*fromTable1ajoinTable2bona.pkid=b.pkidwherea.pkid=10forupdate锁定两个表的中满足条件的行5.select*fromTable1ajoinTable2bona.pkid=b.pkidwherea.pkid=10forupdateofa.pkid只锁定Table1中满足条件的行forupdate是把所有的表都锁定forupdateof根据of后表的条件锁定相对应的表----------关于NOWAIT(如果一定要用FORUPDATE,我更建议加上NOWAIT)当有LOCK冲突时会提示错误并结束STATEMENT而不是在那里等待(比如:要查的行已经被其它事务锁了,当前的锁事务与之冲突,加上nowait,当前的事务会结束会提示错误并立即结束STATEMENT而不再等待).如果加了forupdate后该语句用来锁定特定的行(如果有where子句,就是满足where条件的那些行)。当这些行被锁定后,其他会话可以选择这些行,但不能更改或删除这些行,直到该语句的事务被commit语句或rollback语句结束为止。因
温馨提示:当前文档最多只能预览
5 页,若文档总页数超出了
5 页,请下载原文档以浏览全部内容。
本文档由 匿名用户 于 2022-04-02 00:40:13上传分享