作者glennchen (阿仁)
看板Database
标题[系统] oracle 使用 sequence 问题
时间Wed Feb 8 21:28:56 2012
大家好
我是用
oracle
现在我有两个Tables T1, T2
T1的PK ID 是用
sequence(流水号的感觉)
然後T2会
ref.到 T1的 PK
现在我的问题是
当我
新增一笔资料到 T1
我会用insert into T1 values(
SEQ.NEXTVAL, ...)
那我马上要新增一笔资料到T2
我想要使用刚刚新增到T1的ID
我是想说可以用
insert into T2 values(SEQ.CURRVAL, ...)
可是我想
那当有两个人
同时按下新增的时候
我要怎麽做
才可以确保是我新增的ID
还是大家有其他比较好的做法!
谢谢大家
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.24.120.221
※ 编辑: glennchen 来自: 114.24.120.221 (02/08 21:39)
1F:推 fantasyj:Oracle的sequence取号不用担心会重覆,放心用吧.. 02/08 21:41
2F:→ mrbigmouth:资料库就是为了防止这种事才用的东西 02/08 21:43
3F:→ glennchen:不好意思 我是想问假设A插入T1 1 B插入T1 2 02/08 21:46
4F:→ glennchen:那A插入T2时要怎麽知道他刚刚插入的是'1'不是'2' 02/08 21:47
5F:→ fantasyj:两个人同时按下新增=两个不同session 02/08 22:02
6F:→ fantasyj:oracle是利用session来判断当下所取得的sequence,所以不 02/08 22:03
7F:→ fantasyj:用担心,oracle在db方面的强,不是假的.. 02/08 22:03
8F:→ fantasyj:而且这是n年前就有的技术,在oracle自家的产品ERP上,全部 02/08 22:06
9F:→ fantasyj:都是用sequence来取号当Pk,而且可达多table共用同一编号 02/08 22:07
10F:→ glennchen:谢谢楼上!! 原来是我担心太多!! 02/08 22:20