我有个线程在做删除,有个线程在做Insert,这时操作有关联的表的时候就会死锁我在删除的过程中想先select for update 主表。这个语法要怎么写?大神们?Oracleselect for update数据库多线程
解决方案 »
- sql server 2008 移植到 oracle 10g
- 对于一个表T2,想知道其中包含了多少个 blocks,用了两种方法,得到的结果却不一样,
- 新人报道,顺路问个小问题。
- 同一张表不同时间段取数速度大不一样?
- 表连接不显示相同值得列
- not in (null) 条件下 count(*)与*的执行时间?
- 又来了,还是昨天的存储过程,报文字与格式字符串不匹配错误
- 我在windows的服务里把oracle的几个服务改为手动,现在启动不了ORACLE了?
- 请教一个sql语句
- subtype怎么用,是不是可以来定义一个新类型保存到数据库后,可以用这类型建我的业务表?
- wm_concat invalid identifier
- oracle 的写法,请高手指教!高分!
conn scott/tiger
drop table t1 purge;
create table t1 as select ename,deptno from emp;
alter table t1 add(dname varchar2(18));
select * from t1;
--For update游标,所更改的行既是当前游标所指定的行。DECLARE
CURSOR c1 is select * from t1 for update;
v1 dept.dname%type;
BEGIN
for n1 in c1 loop
select dname into v1 from dept where deptno=n1.deptno;
update t1 set dname=v1 WHERE CURRENT OF C1;
end loop;
END;
/
理解下思想,一样改成delete的,for update锁定的行,其他线程就不能染指了