日期:2014-05-17  浏览次数:20391 次

求一个Mysql生成流水号的存储过程
要求规则为规则为:年月日-0X
0X是2位流水号

并将该流水号存储在临时表中,当日调用该存储过程时,该流水号自动增加。
------解决方案--------------------
专门搞个表存流水号不就行了。只需要一个数据就行了。每次用存储过程都更改字段值让它+1
------解决方案--------------------
还要存个日期,当前日期与记录的日期不同时就重新计数
------解决方案--------------------
楼主应该毫不手软的结贴,慷慨激昂的给分
------解决方案--------------------
这是SQLServer的,mysql的去mysql专区问问吧:
在学习中遇到这个问题?
 
数据库里有编号字段?
 BH00001?
 BH00002?
 BH00003?
 BH00004?
 如何实现自动增长
 ?
 ??
 ?
 --下面的代码生成长度为8的编号,编号以BH开头,其余6位为流水号。
 --得到新编号的函数
 CREATE?FUNCTION?f_NextBH()
 RETURNS?char(8)
 AS
 BEGIN
 ????RETURN(SELECT?'BH'+RIGHT(1000001+ISNULL(RIGHT(MAX(BH),6),0),6)?FROM?tb?WITH(XLOCK,PAGLOCK))
 END
 GO
 ?
 --在表中应用函数
 CREATE?TABLE?tb(
 BH?char(8)?PRIMARY?KEY?DEFAULT?dbo.f_NextBH(),
 col?int)
 ?
 --插入资料
 BEGIN?TRAN
 ????INSERT?tb(col)?VALUES(1)
 ????INSERT?tb(col)?VALUES(2)
 ????INSERT?tb(col)?VALUES(3)
 ????DELETE?tb?WHERE?col=3
 ????INSERT?tb(col)?VALUES(4)
 ????INSERT?tb(BH,col)?VALUES(dbo.f_NextBH(),14)
 COMMIT?TRAN
 ?
 --显示结果
 SELECT?*?FROM?tb
 /*--结果
 BH?????????col?
 ----------------?-----------?
 BH000001??1
 BH000002??2
 BH000003??4
 BH000004??14
 --*/
 ?
 ??
 ?
 create?table?tb
 (id?int?identity,
 name?varchar(10),
 code?as?'BH'+right('0000'+cast(id?as?varchar),5))
 go
 insert?tb(name)?select?'A'
 union?all?select?'B'
 union?all?select?'C'
 union?all?select?'D'
 ?
 select?*?from?tb
 ?
 drop?table?tb
 ?
 /*
 id??????????name???????code?????????
 -----------?----------?------------?
 1???????????A??????????BH00001
 2???????????B??????????BH00002
 3???????????C??????????BH00003
 4???????????D??????????BH00004
 ?
 (所影响的行数为?4?行)
 */
 参考