Re: [問題] 關於資料庫流水號的問題

作者: u9423504 (緣投農夫)   2016-01-07 00:32:07
若是使用JDBC Transaction 是否能達到線上多人同時insert資料到同一張表格時
流水號(以日期為主)不會重覆。
我想到的做法是:使用jdbc的Transaction實做insert資料的功能。
方法如下:
1資料庫的Auto Commit設定為false。
2 以當天的日期加上like和count 做搜尋,如:
select count(*) from ATable where Afield like 'T160107%'
3 承步驟2,主要的目的是要找出當日(如1月7日)共有幾筆資料insert進來。
若搜尋結果傳為0,則Afield的流水編號為:T16010701;若回傳結果為
5筆資料,則Afield欄位的流水編號為:T16010706。
4 Afield的流水編號設定好了之後,則進行insert資料的作業。如:
insert into ATable (Afield,Bfilld,....)values ('T16010706','xx',...)
5執行commit 指令 把資料寫入資料庫。
作者: mrforget (財去人安樂)   2016-01-07 12:16:00
前公司,我是用seqence+batch_job去寫。
作者: BlueBird5566 (生日56)   2016-01-08 21:22:00
用count(*) 有很大的機會會拿到一樣的流水號

Links booklink

Contact Us: admin [ a t ] ucptt.com