流水号生产的问题

frenewang 2007-12-18 06:07:08
标识种子从0001开始,一直到9999
当将这一段加到数据库时由java代码控制加1然后插入到数据库,依次类推。
且当日期变换时该流水号又从0001开始。即假如当天的流水号到达0123结束,第二天该流水号清零又从0001开始。
不考虑一天超过9999的情况。
请问以上情况怎么用java代码来实现。
...全文
68 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
shan1119 2007-12-18
  • 打赏
  • 举报
回复
这个要从数据库读取,不好算法吧.
要是当天就select max(seq)+1 ,要是新的一天就从1开始.seq就是你的标识种子
找标识种子(序列)的sql可以这样写.
select case when to_char(max(插入时间),'yyyyMMdd')<to_char(sysdate,'yyyyMMdd') then 1 else max(seq)+1 end from tbl
frenewang 2007-12-18
  • 打赏
  • 举报
回复
恩,是啊,有没有比较好一点的算法啊。
shan1119 2007-12-18
  • 打赏
  • 举报
回复
噢,是日期,年月日形式的.
shan1119 2007-12-18
  • 打赏
  • 举报
回复
要比较时间来清零吧,从数据库读取最大时间跟当前时间比较.

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧