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...
SELECT * FROM Table1 WHERE pkid = 1 FOR UPDATE NOWAIT; ``` 如果此时另一会话已经锁定了该行,则会立即返回错误信息。 4. **WAIT选项**: - `WAIT`选项用于指定等待获取锁的时间(以秒为单位),如果在指定...
查询记录功能,从access数据库中读取,Adodc1.RecordSource = "select * from 订单表 where 订 单号='" + Text1(0).Text + "'" Adodc1.Refresh(VB6.0源代码编写)
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());...
SELECT empno, ename FROM emp FOR UPDATE NOWAIT WHERE empno = '7369'; ``` 如果在执行上述命令时,目标行已被锁定,那么会立即返回ORA-00054错误,告知资源当前不可用。 ### 使用场景和考虑因素 1. **性能与...
2. **匹配条件查询**:`User.objects.filter(name='运维咖啡吧')` 对应于 SQL 的 `select * from User where name = '运维咖啡吧'`,根据指定条件筛选数据。 3. **不匹配条件查询**:`User.objects.exclude(name='...
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. 列出入职日期早于...
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 cname, balance FROM depositor, account WHERE depositor.acct_no = account.acct_no。这将检索出所有客户的名称和账户余额,其中客户名称来自 depositor 表,账户余额来自 account 表。 在 WHERE ...
- `SELECT * FROM students WHERE age BETWEEN 18 AND 34 AND gender = 2 ORDER BY high DESC, age ASC;` 返回年龄在18至34岁之间的女性,并按身高降序排列,若身高相同则按年龄升序排列。 以上就是关于数据库操作...
- **命令**: `SELECT * FROM tab;` - **解析**: 通过此命令可以查看当前用户拥有的所有表的列表。这对于了解用户拥有的数据资源非常有帮助。 **4. 重复执行上一条SQL语句** - **命令**: 输入 `/` 键 - **解析**: 在...
- `SELECT * FROM 表名 WHERE 字段名 = 字段值 ORDER BY 字段名 [DESC]`:此语句用于从指定的表中选择所有列,并根据给定的条件筛选记录。`WHERE`子句用于指定筛选条件,`ORDER BY`则用来对结果进行排序。 - 示例...
16. **System.Linq.Enumerable**: 提供LINQ查询操作,如Where、Select、GroupBy等。 17. **System.Linq.Queryable**: 支持在数据库上执行的LINQ操作。 18. **System.Xml.Linq.XDocument**: LINQ to XML中的类,...
总结,从UPDATE到SELECT的转换主要是将WHERE子句应用到SELECT语句中。在JavaScript中,我们使用相应的库来执行SQL;Oracle、MySQL和Informix都支持标准SQL,可以直接执行转换后的SELECT语句。了解这些转换技巧,可以...
- **全表选择**: `SELECT * FROM 表名 WHERE 条件 ORDER BY 排序字段` - 示例:`SELECT * FROM 表名 WHERE 字段 = '值' ORDER BY 字段` - 示例:`SELECT * FROM 表名 WHERE 字段 LIKE '%值%' ORDER BY 字段` - **...
- 示例:`SELECT * FROM stuInfo WHERE EXISTS (SELECT * FROM deptInfo WHERE deptInfo.id = stuInfo.deptId);` #### 事务处理 **1. 开始事务** - `BEGIN TRANSACTION;` - 开始一个新的事务块。 **2. 提交...
SELECT * FROM usertable WHERE EXISTS (SELECT * FROM orders WHERE usertable.userid = orders.userid); ``` **10. BETWEEN** - 用于指定一个取值范围。 ```sql SELECT * FROM usertable WHERE age BETWEEN...
SELECT * FROM 表名 WHERE 列 = 值; ``` #### 七、ORDER BY子句 **用途**:用于对查询结果进行排序。 **基本格式**: ``` SELECT column_name(s) FROM table_name ORDER BY column_name ASC/DESC; ``` - **...
- 示例:`SELECT * FROM usertable WHERE country IN ('Germany', 'China');` - 用于指定多个可能的值。 **5. LIKE与NOT LIKE:** - 示例:`SELECT * FROM usertable WHERE name LIKE '%Publishing%';` - 用于...