for update [of] 语句
2016-03-24 21:21
966 查看
for update 是把所有的表都锁定for update of
根据of
后表的条件锁定相对应的表
--1.锁定整个表
SELECT *
FROM emp for
UPDATE;
--2.锁定表的单行记录
SELECT *
FROM emp a WHERE a.empno='7369'
for UPDATE;
--3.锁定两个表
SELECT *
FROM emp a,dept b
WHERE a.deptno=b.deptno
for update;
--4.之锁定of后面指定的表
SELECT *
FROM emp a,dept b
WHERE a.deptno=b.deptno
for UPDATE
OF a.empno;
--5.之锁定emp表指定的行
SELECT *
FROM emp a,dept b
WHERE a.deptno=b.deptno
WHERE a.empno='7369'
AND a.deptno=b.deptno
OF a.empno;
使用for update of column对单表操作时,与for update是一样的效果,但
for update of columns 用在多表连接锁定时,可以指定要锁定的是哪几张表,而如果表中的列没有在forupdate of
后面出现的话,就意味着这张表其实并没有被锁定,其他用户是可以对这些表的数据进行update操作的
关于
SELECT *
FROM gumengkai.emp for
UPDATE NOWAIT;
当有其他事务锁时,该语句将会立即返回异常信息,而不会无限制的等待
SELECT...FOR UPDATE 语句的语法如下:
SELECT ... FOR UPDATE [OFcolumn_list][WAIT n|NOWAIT][SKIP LOCKED];
如:
SELECT *
FROM gumengkai.emp for
UPDATE WAIT
5;
等待6秒后,显示异常
SELECT *
FROM gumengkai.emp for
UPDATE SKIP
LOCKED;
在执行sql时,既不等待,也不报异常
根据of
后表的条件锁定相对应的表
--1.锁定整个表
SELECT *
FROM emp for
UPDATE;
--2.锁定表的单行记录
SELECT *
FROM emp a WHERE a.empno='7369'
for UPDATE;
--3.锁定两个表
SELECT *
FROM emp a,dept b
WHERE a.deptno=b.deptno
for update;
--4.之锁定of后面指定的表
SELECT *
FROM emp a,dept b
WHERE a.deptno=b.deptno
for UPDATE
OF a.empno;
--5.之锁定emp表指定的行
SELECT *
FROM emp a,dept b
WHERE a.deptno=b.deptno
WHERE a.empno='7369'
AND a.deptno=b.deptno
OF a.empno;
使用for update of column对单表操作时,与for update是一样的效果,但
for update of columns 用在多表连接锁定时,可以指定要锁定的是哪几张表,而如果表中的列没有在forupdate of
后面出现的话,就意味着这张表其实并没有被锁定,其他用户是可以对这些表的数据进行update操作的
关于
SELECT *
FROM gumengkai.emp for
UPDATE NOWAIT;
当有其他事务锁时,该语句将会立即返回异常信息,而不会无限制的等待
SELECT...FOR UPDATE 语句的语法如下:
SELECT ... FOR UPDATE [OFcolumn_list][WAIT n|NOWAIT][SKIP LOCKED];
如:
SELECT *
FROM gumengkai.emp for
UPDATE WAIT
5;
等待6秒后,显示异常
SELECT *
FROM gumengkai.emp for
UPDATE SKIP
LOCKED;
在执行sql时,既不等待,也不报异常
相关文章推荐
- Problem I
- 关于shell的几个不为人知却十分有用的命令分享
- Android 混淆问题集锦
- PAT 符号配对
- Linux GCC常用命令
- HDOJ 1017 A Mathematical Curiosity
- 剑指offer 11二进制中1的个数
- 第三周项目四(1)-百钱百鸡问题
- HDOJ 1017 A Mathematical Curiosity
- JAVA之大数处理,有简单方法不用是sb
- 狄拉克δ函数的导数
- java socket编程
- Mybatis开发原始Dao(即有Dao的实现)
- 怎么使得文本框在点击的时候,边框的颜色变成绿色
- 推荐算法(一)——音乐歌单智能推荐
- java main方法调用类的实例化方法疑问
- 深入理解C指针学习笔记(四)
- JS中自己实现一个HashMap
- 字符串反转
- PAT 求前缀表达式的值