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