一种生成序列号的方法及装置的制造方法

文档序号:9235495阅读:381来源:国知局
一种生成序列号的方法及装置的制造方法
【技术领域】
[0001]本发明涉及计算机领域,尤其涉及一种生成序列号的方法及装置。
【背景技术】
[0002]在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研宄和决策管理的前提条件。数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研宄和决策管理的重要技术手段。数据库为了更好地为上述的功能提供支撑,需将大量的数据保存于数据库的表中。
[0003]目前使用较普遍的数据库,如MySQL,缺少获取序列的途径,当在数据库的表中插入数据时,无法知道插入的数据的序列号。故急需一种获知数据序列号的方法及装置,能在数据库插入数据时,获知该插入数据对应的序列号,使每个数据具有唯一的标识一一序列号。

【发明内容】

[0004]本发明提供一种生成序列号的方法及装置,用以在数据库插入数据时,获知该插入数据对应的序列号,达到使每个数据具有唯一的标识一一序列号的目的。
[0005]本发明提供一种生成序列号的方法,包括:
[0006]根据当前数据要存入的数据表的标识,从预先设置的序列表中获取所述当前数据要存入的数据表对应的序列号初始值、步长和上一次分配的序列号;
[0007]根据所述当前数据要存入的数据表对应的序列号初始值、步长和上一次分配的序列号生成当前数据的序列号;
[0008]将当前数据和当前数据的序列号存入所述当前数据要存入的数据表中;
[0009]其中,当有新的数据表出现时,所述序列表记录所述新的数据表的标识及其对应的序列号初始值和步长。
[0010]本发明实施例的一些有益效果可以包括:
[0011]通过在数据库中新建一个序列表,该表用于记录数据库中其他表的序列,包括了其他表的序列号初始值、步长和上一次分配的序列号,故能在数据库插入数据时,根据数据要存入的数据表,即可从序列表中获取数据要存入的数据表序列的初始值、步长和上一次分配的序列号,根据这些信息,继可以完成获知该插入数据对应的序列号,达到使每个数据具有唯一的标识序列号的目的。
[0012]在一个实施例中,所述根据所述当前数据要存入的数据表对应的序列号初始值、步长和上一次分配的序列号生成当前数据的序列号,包括:
[0013]S1:判断所述当前数据要存入的数据表是否是第一次输入数据,是则执行S2,否则执行S3 ;
[0014]S2:将所述当前数据要存入的数据表对应的序列号初始值作为当前数据的序列号,并将所述当前数据的序列号作为所述当前数据要存入的数据表对应的上一次分配的序列号记录在所述序列表中;
[0015]S3:将所述当前数据要存入的数据表对应的上一次分配的序列号加上步长得到的值作为当前数据的序列号,并更新所述当前数据要存入的数据表对应的上一次分配的序列号为当前数据的序列号。
[0016]在该实施例中,不管当前数据要存入的数据表对应的上一次分配的序列号存在与否,都可以完成生成当前数据对应的序列号的工作。
[0017]在一个实施例中,所述序列表中记录的所述当前数据要存入的数据表对应的步长为正数时,所述序列表还记录有该数据表对应的序列号最大值;
[0018]所述步骤SI判断结果为否之后,执行步骤S3之前,还包括:判断所述当前数据要存入的数据表对应的上一次分配的序列号加上步长得到的值是否小于或等于该数据表对应的序列号最大值,是则执行S3,否则生成当前数据的序列号失败,结束流程。
[0019]在该实施例中,用户可以将数据表对应的步长设置为正数,同时可以设置数据表对应的序列号最大值,从而生成序列号将不会大于数据表对应的序列号最大值,防止数据的溢出。
[0020]在一个实施例中,当所述序列表中记录的所述当前数据要存入的数据表对应的步长为负数时,所述序列表还记录有该数据表对应的序列号最小值;
[0021]所述步骤SI判断结果为否之后,执行步骤S3之前,还包括:判断所述当前数据要存入的数据表对应的上一次分配的序列号加上步长得到的值是否大于或等于该数据表对应的序列号最小值,是则执行S3,否则生成当前数据的序列号失败,结束流程。
[0022]在该实施例中,用户可以将数据表对应的步长设置为负数,同时可以设置数据表对应的序列号最小值,从而生成序列号将不会小于数据表对应的序列号最小值,防止数据的溢出。
[0023]本发明还提供一种生成序列号的装置,包括:获取模块,序列号生成模块,保存模块;
[0024]所述获取模块,用于根据当前数据要存入的数据表的标识,从自身存储的预先设置的序列表中,获取所述当前数据要存入的数据表对应的序列号初始值、步长和上一次分配的序列号并发送给所述序列号生成模块;当有新的数据表出现时,所述获取模块将新的数据表的标识及其对应的序列号初始值和步长记录至所述序列表中;
[0025]所述序列号生成模块,用于根据所述获取模块发来的所述当前数据要存入的数据表对应的序列号初始值、步长和上一次分配的序列号,生成当前数据的序列号并发送给所述保存t吴块;
[0026]所述保存模块,用于接收所述序列号生成模块发来的所述当前数据的序列号,将当前数据和所述当前数据的序列号存入所述当前数据要存入的数据表中。
[0027]在一个实施例中,所述序列号生成模块包括:第一判断模块、第一更新模块、第二更新t吴块;
[0028]所述第一判断模块,用于判断所述获取模块发来的所述当前数据要存入的数据表是否是第一次输入数据,是则向所述第一更新模块发送第一更新指令,否则向所述第二更新模块发送第二更新指令
[0029]所述第一更新模块,用于根据所述第一判断模块发来的第一更新指令,将所述获取模块发来的所述当前数据要存入的数据表对应的序列号初始值作为当前数据的序列号,并将当前数据的序列号作为所述当前数据要存入的数据表对应的上一次分配的序列号记录在所述序列表中;
[0030]所述第二更新模块,用于根据所述第一判断模块发来的第二更新指令,将所述获取模块发来的所述当前数据要存入的数据表对应的上一次分配的序列号加上步长得到的值作为当前数据的序列号,并更新所述序列表中记录的当前数据要存入的数据表对应的上一次分配的序列号为当前数据的序列号。
[0031]在一个实施例中,所述获取模块存储的序列表中记录的所述当前数据要存入的数据表对应的步长为正数时,所述序列表还记录有该数据表对应的序列号最大值;所述获取模块存储的序列表中记录的所述当前数据要存入的数据表对应的步长为负数时,所述序列表还记录有该数据表对应的序列号最小值;
[0032]所述第二更新模块包括:
[0033]第二判断模块,用于根据所述第一判
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1