作者u9423504 (缘投农夫)
标题Re: [问题] 关於资料库流水号的问题
时间Thu Jan 7 00:32:07 2016
若是使用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://webptt.com/cn.aspx?n=bbs/java/M.1452097931.A.C14.html
※ 编辑: u9423504 (113.183.100.11), 01/07/2016 00:36:18
1F:推 mrforget: 前公司,我是用seqence+batch_job去写。 01/07 12:16
2F:→ BlueBird5566: 用count(*) 有很大的机会会拿到一样的流水号 01/08 21:22