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

看板java作者 (緣投農夫)時間9年前 (2016/01/07 00:32), 9年前編輯推噓1(101)
留言2則, 2人參與, 最新討論串3/5 (看更多)
若是使用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 指令 把資料寫入資料庫。 -------------------------------------------------------------------------- 以上做法不知是否可行,可以達到線上多人同時insert資料到ATable時, Afield的流水號不會重覆?! -- 陰律無情!是的,犯邪淫者,小如手淫、婚前性行為 均會遭折福減壽之惡報。國考者更不能犯淫邪, 否則文昌帝君會除去功名,不信請看此懺悔文: http://lustwarn.blogspot.tw/ 陰律無情!是的,犯邪淫者,若不懺悔發心改過永不再犯, 死後必入邪淫地獄,不信請看;http://goo.gl/tchBZY -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 113.183.100.11 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1452097931.A.C14.html ※ 編輯: u9423504 (113.183.100.11), 01/07/2016 00:36:18

01/07 12:16, , 1F
前公司,我是用seqence+batch_job去寫。
01/07 12:16, 1F

01/08 21:22, , 2F
用count(*) 有很大的機會會拿到一樣的流水號
01/08 21:22, 2F
文章代碼(AID): #1MZK6BmK (java)
文章代碼(AID): #1MZK6BmK (java)