`

select * from tab where ..... for update nowait(转)

 
阅读更多
http://blog.sina.com.cn/s/blog_4ea0bbed0100vhvz.html

大家在使用plsqldeveloper时 ,修改数据的时候比较喜欢 select * from tab for update ,然后开始修改数据
这种模式比较容易锁住数据,有的时候还出现自己锁住自己的事情(自己有开了个窗口用了select * from tab for update )
我个人推荐大家在修改数据的时候用 select * from tab where ..... for update nowait; 大家都用这个,否则效果会打折扣。
例子:
下图如果两个人都使用 select * from tab for update ,那么必定有一个人被锁住


只有一方commit后,另一方才能用,如图2

如果用select * from tab where ..... for update nowait; ,会直接报错(ora-00054),而不会锁住,避免了自己锁定自己,同时也告诉别人这个数据我在改了,请您等等再该
分享到:
评论

相关推荐

    帐目查询(VB6.0源代码编写)'按日期查询并汇总商品销售信息 Adodc1.RecordSource = "select * from xsd where 日期 between " + Chr(35) + Str(DTPicker1.Value) + Chr(35) + "and " + Chr(35) + Str(DTPicker2.Value) + Chr(35) + "order by 日期"

    帐目查询(VB6.0源代码编写)'按日期查询并汇总商品销售信息 Adodc1.RecordSource = "select * from xsd where 日期 between " + Chr(35) + Str(DTPicker1.Value) + Chr(35) + "and " + Chr(35) + Str(DTPicker2.Value...

    数据库oracle for update of和for update的区别

    SELECT * FROM Table1 WHERE pkid = 1 FOR UPDATE NOWAIT; ``` 如果此时另一会话已经锁定了该行,则会立即返回错误信息。 4. **WAIT选项**: - `WAIT`选项用于指定等待获取锁的时间(以秒为单位),如果在指定...

    查询记录功能,从access数据库中读取,Adodc1.RecordSource = "select * from 订单表 where 订

    查询记录功能,从access数据库中读取,Adodc1.RecordSource = "select * from 订单表 where 订 单号='" + Text1(0).Text + "'" Adodc1.Refresh(VB6.0源代码编写)

    sql最全的常用命令语句

    select * from master.dbo.sysprocesses where spid > 50 and waittype = 0x0000 and waittime = 0 and status = 'sleeping ' and last_batch (minute, -10, getdate()) and login_time (minute, -10, getdate());...

    for_update_和_for_update_nowait_的区别

    SELECT empno, ename FROM emp FOR UPDATE NOWAIT WHERE empno = '7369'; ``` 如果在执行上述命令时,目标行已被锁定,那么会立即返回ORA-00054错误,告知资源当前不可用。 ### 使用场景和考虑因素 1. **性能与...

    Django model select的多种用法详解

    2. **匹配条件查询**:`User.objects.filter(name='运维咖啡吧')` 对应于 SQL 的 `select * from User where name = '运维咖啡吧'`,根据指定条件筛选数据。 3. **不匹配条件查询**:`User.objects.exclude(name='...

    Oracle中sql语句(+)符号代表连接的使用讲解

    SELECT a.*, b.* from a(+) = b就是一个右连接,等同于select a.*, b.* from a right join b SELECT a.*, b.* from a = b(+)就是一个左连接,等同于select a.*, b.* from a left join b 内连接 常用的连接运算符=...

    数据库程序设计-大三下上机

    SELECT* FROM DEPT WHERE DEPTNO IN (SELECT DISTINCT DEPTNO FROM EMP); 2. 列出薪金比"SMITH"多的所有雇员[3分] SELECT * FROM EMP WHERE SAL>(SELECT SAL FROM EMP WHERE ENAME='SMITH'); 3. 列出入职日期早于...

    项目实用的50个SQL

    4.查询某个学生的所有课程的平均成绩:select avg(score) from SC where S#='01' group by C# 5.查询某个课程的所有学生的平均成绩:select avg(score) from SC where C#='01' group by S# 这些SQL语句涵盖了基本的...

    select form where 语句

    例如:SELECT cname, balance FROM depositor, account WHERE depositor.acct_no = account.acct_no。这将检索出所有客户的名称和账户余额,其中客户名称来自 depositor 表,账户余额来自 account 表。 在 WHERE ...

    数据库 1 菜鸟笔记

    - `SELECT * FROM students WHERE age BETWEEN 18 AND 34 AND gender = 2 ORDER BY high DESC, age ASC;` 返回年龄在18至34岁之间的女性,并按身高降序排列,若身高相同则按年龄升序排列。 以上就是关于数据库操作...

    经典-Oracle的sql语句百例训练.doc

    - **命令**: `SELECT * FROM tab;` - **解析**: 通过此命令可以查看当前用户拥有的所有表的列表。这对于了解用户拥有的数据资源非常有帮助。 **4. 重复执行上一条SQL语句** - **命令**: 输入 `/` 键 - **解析**: 在...

    SQL常见命令及使用方法

    - `SELECT * FROM 表名 WHERE 字段名 = 字段值 ORDER BY 字段名 [DESC]`:此语句用于从指定的表中选择所有列,并根据给定的条件筛选记录。`WHERE`子句用于指定筛选条件,`ORDER BY`则用来对结果进行排序。 - 示例...

    C#常用的42个类

    16. **System.Linq.Enumerable**: 提供LINQ查询操作,如Where、Select、GroupBy等。 17. **System.Linq.Queryable**: 支持在数据库上执行的LINQ操作。 18. **System.Xml.Linq.XDocument**: LINQ to XML中的类,...

    根据update语句自动生成select语句

    总结,从UPDATE到SELECT的转换主要是将WHERE子句应用到SELECT语句中。在JavaScript中,我们使用相应的库来执行SQL;Oracle、MySQL和Informix都支持标准SQL,可以直接执行转换后的SELECT语句。了解这些转换技巧,可以...

    SQL语句参考及记录集对象详解

    - **全表选择**: `SELECT * FROM 表名 WHERE 条件 ORDER BY 排序字段` - 示例:`SELECT * FROM 表名 WHERE 字段 = '值' ORDER BY 字段` - 示例:`SELECT * FROM 表名 WHERE 字段 LIKE '%值%' ORDER BY 字段` - **...

    sql_常用语法

    - 示例:`SELECT * FROM stuInfo WHERE EXISTS (SELECT * FROM deptInfo WHERE deptInfo.id = stuInfo.deptId);` #### 事务处理 **1. 开始事务** - `BEGIN TRANSACTION;` - 开始一个新的事务块。 **2. 提交...

    sql查询语句大全

    SELECT * FROM usertable WHERE EXISTS (SELECT * FROM orders WHERE usertable.userid = orders.userid); ``` **10. BETWEEN** - 用于指定一个取值范围。 ```sql SELECT * FROM usertable WHERE age BETWEEN...

    10种mysql 查询语句大全及用法介绍.docx

    SELECT * FROM 表名 WHERE 列 = 值; ``` #### 七、ORDER BY子句 **用途**:用于对查询结果进行排序。 **基本格式**: ``` SELECT column_name(s) FROM table_name ORDER BY column_name ASC/DESC; ``` - **...

    通用SQL数据库查询语句精华使用简介

    - 示例:`SELECT * FROM usertable WHERE country IN ('Germany', 'China');` - 用于指定多个可能的值。 **5. LIKE与NOT LIKE:** - 示例:`SELECT * FROM usertable WHERE name LIKE '%Publishing%';` - 用于...

Global site tag (gtag.js) - Google Analytics