ORACLE数据库中,select job from emp where job='CLERK' FOR UPDATE OF empno是什么意思?
3个回答
展开全部
for update of columns 用在多表连接锁定时,可以指定要锁定的是哪几张表,而如果表中的列没有在for update of 后面出现的话,就意味着这张表其实并没有被锁定,其他用户是可以对这些表的数据进行update操作的。这种情况经常会出现在用户对带有连接查询的视图进行操作场景下。用户只锁定相关表的数据,其他用户仍然可以对视图中其他原始表的数据来进行操作。
select * from emp e,dept d where e.deptno = d.deptno for update; --对二张表都进行了整表锁定
select * from emp e,dept d where e.deptno = d.deptno for update of d.deptno; --只锁定了dept表
select * from emp e,dept d where e.deptno = d.deptno for update; --对二张表都进行了整表锁定
select * from emp e,dept d where e.deptno = d.deptno for update of d.deptno; --只锁定了dept表
展开全部
这句话的本意是选择job='CLERK'的记录用于更新,因为一直在等待update,所以这些记录就锁住了,不允许修改。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将表锁住不让其他人更新
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询