日期:2014-05-18  浏览次数:20525 次

生成流水号问题
怎样生成这样的流水号
11111111-111112013010101
11111111-111112013010102
11111111-111112013010103
11111111-11111201301010...


或者
11111111-11111W513010101
11111111-11111W513010102
11111111-11111W513010103
11111111-11111W51301010..

作为主键,所以不能重复
删除后,得从头开始
比如:11111111-11111W513010102
下次新增时从11111111-11111W513010101开始
在WebFrom上点新增后生成
请高手帮忙


------解决方案--------------------
前面弄一个前缀
比如 11111111-11111W

后面弄一个基数 比如 50005000

然后for循环 给数字+1
然后和前缀相加 返回就OK了
------解决方案--------------------
oracle里可以建个sequence,初始值为513010101,然后递增就可以了:
SELECT '11111111-11111W '|| --当前时间
TO_CHAR(COMMON_SEQ.NEXTVAL)
FROM DUAL;

但不知道你说的删除是什么意思
比如此时有
11111111-11111W513010101
11111111-11111W513010102
11111111-11111W513010103

这时候删除11111111-11111W513010102,然后你想从什么地方开始??
------解决方案--------------------
每次新增前到数据库里查询最大的就OK了