看板 Database 關於我們 聯絡資訊
大家好 我是用 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)
fantasyj:Oracle的sequence取號不用擔心會重覆,放心用吧.. 02/08 21:41
mrbigmouth:資料庫就是為了防止這種事才用的東西 02/08 21:43
glennchen:不好意思 我是想問假設A插入T1 1 B插入T1 2 02/08 21:46
glennchen:那A插入T2時要怎麼知道他剛剛插入的是'1'不是'2' 02/08 21:47
fantasyj:兩個人同時按下新增=兩個不同session 02/08 22:02
fantasyj:oracle是利用session來判斷當下所取得的sequence,所以不 02/08 22:03
fantasyj:用擔心,oracle在db方面的強,不是假的.. 02/08 22:03
fantasyj:而且這是n年前就有的技術,在oracle自家的產品ERP上,全部 02/08 22:06
fantasyj:都是用sequence來取號當Pk,而且可達多table共用同一編號 02/08 22:07
glennchen:謝謝樓上!! 原來是我擔心太多!! 02/08 22:20