一种生成自定义自增型唯一单号的方法与流程

文档序号:20077630发布日期:2020-03-10 09:55阅读:483来源:国知局
本发明涉及web应用与开发
技术领域
:,具体涉及一种生成自定义自增型唯一单号的方法。
背景技术
::数据库(database)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。简单来说是本身可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。自增唯一单号是指按照一定的规则生成的自动增长的且具有唯一性的单号。一般情况下,数据库可以自动生成自动增长数字型单号,这种单号只是在数值上进行增长,业务上不能表示出实质的意义。在实际开发与应用中,自增型唯一单号通常包括数字、字母和符号多种元素,生成出的单号能表示出实际的业务意义,则数据库自带的生成方式就不能满足业务需求。本发明解决了根据任一自定义规则生成自增型唯一单号的问题,可广泛应用于web应用与开发过程中。技术实现要素:本发明解决的技术问题在于提供一种生成自定义自增型唯一单号的方法;解决了根据任一自定义规则生成自增型唯一单号的问题。本发明解决上述技术问题的技术方案是:所述的方法包含以下几个步骤:步骤一、创建自增标识生成记录表;步骤二、确定单号生成规则;步骤三、编写数据库自增标识生成函数;步骤四、程序调用并返回唯一单号。所述的生成自定义自增型唯一单号的方法,步骤一中,创建自增标识生成记录表,字段包括主键标识,账号,前缀,生成的值,创建时间,修改时间。账号字段标识并区分不同的的账号主体生成的记录值,前缀字段用来标识并区分生成不同类型的业务单号。所述的步骤二中,为了使生成的单号能具有实际的业务意义,生成后的单号应该包含业务类型,账号主体,日期时间以及三位以上的自增标识值。所述的步骤三中,确定好单号的生成规则后,编写数据库中自增标识生成函数。首先根据账号、业务类型以及当前时间查询该账户下当天有没有生成该业务类型的自增值,如果有则新自增值为在原自增值上加1,并更新原自增值;如果不存在,设置自增初始值为1,并插入生成记录到记录表中,同时插入的数据还包括主键标识,账号,前缀,生成的值,创建时间,修改时间。所述的步骤四中,根据步骤三中生成的自增值,再根据步骤二中的单号规则,把业务类型前缀、账号、日期时间、以及自增标识值进行组合,用程序调用并返回结果。本发明解决了根据任一自定义规则生成自增型唯一单号的问题,可广泛应用于web应用和开发过程中。附图说明下面结合附图对本发明进一步说明:图1是本发明方法流程图。具体实施方式如图1所示,本发明具体包含以下几个步骤:步骤一、创建自增标识生成记录表;步骤二、确定单号生成规则;步骤三、编写数据库自增标识生成函数;步骤四、程序调用并返回唯一单号。所述的步骤一中,创建自增标识生成记录表,字段包括主键标识,账号,前缀,生成的值,创建时间,修改时间。账号字段标识并区分不同的的账号主体生成的记录值,前缀字段用来标识并区分生成不同类型的业务单号。createtable`baseautoincrement`(`guid`varchar(50)notnulldefault'',`storeid`varchar(50)notnull,`prefix`varchar(10)notnull,`value`int(11)notnull,`updatetime`datetimenotnull,`modifydate`datetimenotnull,primarykey(`guid`)usingbtree,key`bai_storeid`(`storeid`))engine=innodbdefaultcharset=utf8row_format=dynamic;所述的步骤二中,为了使生成的单号能具有实际的业务意义,生成后的单号应该包含业务类型,账号主体,日期时间以及三位以上的自增标识值。所述的步骤三中,确定好单号的生成规则后,编写数据库中自增标识生成函数。首先根据账号、业务类型以及当前时间查询该账户下当天有没有生成该业务类型的自增值,如果有则新自增值为在原自增值上加1,并更新原自增值;如果不存在,设置自增初始值为1,并插入生成记录到记录表中,同时插入的数据还包括主键标识,账号,前缀,生成的值,创建时间,修改时间。selectguid,`value`intoparam_guid,valfrombaseautoincrementwhereprefix=param_prefixandstoreid=param_storeidandtimestampdiff(day,date_format(updatetime,'%y-%m-%d'),date_format(now(),'%y-%m-%d'))=0;if(valisnull)thensetval=1;insertintobaseautoincrement(guid,prefix,storeid,`value`,updatetime,modifydate)values(lower(uuid()),param_prefix,param_storeid,val,now(),now());setsumerror=0;elsesetval=val+1;updatebaseautoincrementset`value`=val,updatetime=now(),modifydate=now()whereguid=param_guid;setsumerror=0;endif;if(sumerror=0)thensetreturnval=val;elsesetreturnval=0;endif;所述的步骤四中,根据步骤三中生成的自增值,再根据步骤二中的单号规则,把业务类型前缀、账号、日期时间、以及自增标识值进行组合,用程序调用并返回结果。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1