`
- 浏览:
524228 次
- 性别:
- 来自:
北京
-
数据库 oracle for update of 和 for update区别
数据库 oracle for update of 和 for update区别
select * from TTable1 for update 锁定表的所有行,只能读不能写
2 select * from TTable1 where pkid = 1 for update 只锁定pkid=1的行
3 select * from Table1 a join Table2 b on a.pkid=b.pkid for update 锁定两个表的所有记录
4 select * from Table1 a join Table2 b on a.pkid=b.pkid where a.pkid = 10 for update 锁定两个表的中满足条件的行
5. select * from Table1 a join Table2 b on a.pkid=b.pkid where a.pkid = 10 for update of a.pkid 只锁定Table1中满足条件的行
for update 是把所有的表都锁点 for update of 根据of 后表的条件锁定相对应的表
-----------
关于NOWAIT(如果一定要用FOR UPDATE,我更建议加上NOWAIT)
当有LOCK冲突时会提示错误并结束STATEMENT而不是在那里等待(比如:要查的行已经被其它事务锁了,当前的锁事务与之冲突,加上nowait,当前的事务会结束会提示错误并立即结束 STATEMENT而不再等待).
如果加了for update后 该语句用来锁定特定的行(如果有where子句,就是满足where条件的那些行)。当这些行被锁定后,其他会话可以选择这些行,但不能更改或删除这些行,直到该语句的事务被commit语句或rollback语句结束为止。
因为FOR UPDATE子句获得了锁,所以COMMIT将释放这些锁。当锁释放了,该游标就无效了。
就是这些区别了
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
数据库oracle锁: for update of和for update的区别,解释得很清楚,有很多详细例子说明。
这种只有update无法执行其他语句可以执行的其实是因为记录锁导致的,在oracle中,执行了update或者insert语句后,都会要求commit,如果不commit却强制关闭连接,oracle就会将这条提交的记录锁住。由于我的java程序...
shell连接oracle数据库工具脚本:支持select/insert/update/delete 部署位置:/root/sysmonitor db:数据库文件夹 dbconfig.properties:数据库配置文件, dbConnectTest.sh:连接测试文件 dbExecurteSQL.sh:...
把其它表作为条件和更新值的更新语句;例如: 两表(多表)关联update -- 仅在where字句中的连接 --这次提取的数据都是VIP,且包括新增的,所以顺便更新客户类别 update customers a -- 使用别名 set customer_type=...
用SSH框架+Oracle数据库,实现增删改查,添加数据就可以直接运行
在oracle数据据库中批量插入数据的java方法
Oracle升级-数据库迁移(part3)的内容重新整理 了一下
update语句的优化-oracle
Oracle数据库分区表操作方法Oracle数据库分区表操作方法
Red Hat Enterprise Linux4 Update4 环境下安装Oracle10.2数据库.pdf
如果编程人员要在一个表中查找许多行,结果中的每个行都会查找其他表中的数据,最后,编程人员创建了独立的UPDATE命令来成批地更新第一个表中的数 据。...本文将为大家介绍通过JDBC连接Oracle数据库的十大技巧。
update :单表的更新不用说了,两者一样,主要说说多表的更新 代码如下: Oracle> Oracle的多表更新要求比较严格,所以有的时候不是很好写,我们可以试试Oracle的游标 update ( select t.charger_id_ new_charger...
ImportExcel2Oracle.aspx通过dateset.update把数据更新到oracle数据库中的RAWDATA表中,当oracle数据库表中数据很大时,这种导入速度很慢,但是表数据空时导入比较快。ImportExcelData2Oracle.aspx通过oracle 的sql...
private String driver = "oracle.jdbc.driver.OracleDriver"; private String user = "www"; private String password = "www"; // 主函数 public static void main(String[] args) { Bc bc = new Bc(); ...
基于之前所有同题的详细操作手册,Oracle 升级 数据库迁移 手册
导致索引失效: 1、表上频繁发生update,delete操作; 2、表上发生了alter table ..move操作(move操作导致了rowid变化)。
一行代码搞定Oracle + DataGridView的 增删改查图文教程 操练环境 VS2010 sp1 + c# + Oracle + Win10 代码如下: using System; using System.Windows.Forms; using System.Data; namespace KEZZ { public ...
ORACLE数据库的一些SQL语句 数据操纵语言DML M = Manipulation 数据操纵语言DML用于改变数据库数据 主要有三种形式: 1) 插入:INSERT 2) 更新:UPDATE 3) 删除:DELETE
Oracle升级-数据库迁移 系列之 操作手册再次更新