一种数据库主键生成方法、装置、电子设备及存储介质制造方法及图纸

技术编号:33997417 阅读:47 留言:0更新日期:2022-07-02 11:14
本申请提供一种数据库主键生成方法、装置、电子设备及存储介质,该方法包括:当数据库需要新增一条数据时,根据数据库所在服务器的当前系统时间确定即将生成的数据的主键在循环数组中的索引位置,若索引位置上的内容为空,则按照设定的算法生成数据的主键并存放在索引位置,将主键作为数据存入数据库的主键;否则,从循环数组中的索引位置中获取上次存储的主键,并提取出主键中的时间戳、机器标识和序列标识;若当前系统时间小于上次存储的主键中的时间戳,则根据上次存储的主键中的时间戳、机器标识和自增后的序列标识生成新的主键,然后将新的主键存储至循环数组的索引位置中,将新的主键作为数据存入数据库的主键。将新的主键作为数据存入数据库的主键。将新的主键作为数据存入数据库的主键。

【技术实现步骤摘要】
一种数据库主键生成方法、装置、电子设备及存储介质


[0001]本申请涉及分布式数据处理和数据库的
,具体而言,涉及一种数据库主键生成方法、装置、电子设备及存储介质。

技术介绍

[0002]主键(identification,ID),又称主键符,是指计算机体系中识别目标对象的一个标识符,以目标对象是文件为例进行说明,文件的主键可以是文件路径以及文件名称,但是当文件路径或文件名称变化时,就难以根据原来的主键获取文件,因此,通常可以采用数据库生成的自增主键作为文件的主键。
[0003]目前大都是采用传统数据库的自增标识来对大量数据和消息进行标识,然而这种方式并不适用于复杂的分布式系统。针对复杂的分布式系统,通常是采用联合主键来生成主键的方法,具体例如经常使用的雪花(Snowflake)算法。在具体实践中发现,由于计算机的系统时钟会定期出现回拨的情况,而雪花算法是强依赖于计算机系统时钟的;因此,在复杂的分布式数据库系统中,当系统时钟回拨时生成的主键容易与已生成的主键重复。

技术实现思路

[0004]本申请实施例的目的在于提本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种数据库主键生成方法,其特征在于,包括:当所述数据库需要新增一条数据时,获取所述数据库所在服务器的当前系统时间,根据所述当前系统时间,确定即将生成的所述数据的主键在循环数组中的索引位置,判断所述索引位置上的内容是否为空,若为空,则按照设定的算法生成所述数据的主键并存放在所述索引位置,将所述主键作为所述数据存入所述数据库的主键;否则,从循环数组中的所述索引位置中获取上次存储的主键,并提取出所述主键中的时间戳、机器标识和序列标识,将所述当前系统时间与所述上次存储的主键中的时间戳进行对比;若所述当前系统时间小于所述上次存储的主键中的时间戳,则将所述序列标识进行自增,获得自增后的序列标识,并根据所述上次存储的主键中的时间戳、所述机器标识和所述自增后的序列标识生成新的主键,然后将所述新的主键存储至所述循环数组的所述索引位置中,将所述新的主键作为所述数据存入所述数据库的主键。2.根据权利要求1所述的方法,其特征在于,在所述将所述当前系统时间与所述上次存储的主键中的时间戳进行对比之后,所述方法还包括:若所述当前系统时间等于所述上次存储的主键中的时间戳,则将所述序列标识进行自增,获得自增后的序列标识,并根据所述当前系统时间、所述机器标识和所述自增后的序列标识生成新的主键,然后将所述新的主键存储至所述循环数组的所述索引位置中,将所述新的主键作为所述数据存入所述数据库的主键。3.根据权利要求1所述的方法,其特征在于,在将所述当前系统时间与所述上次存储的主键中的时间戳进行对比之后,所述方法还包括:若所述当前系统时间大于所述上次存储的主键中的时间戳,则根据所述当前系统时间、所述机器标识和预设初始序列生成新的主键,将所述新的主键存储至所述循环数组的所述索引位置中,将所述新的主键作为所述数据存入所述数据库的主键。4.根据权利要求1所述的方法,其特征在于,所述从循环数组中的所述索引位置中获取上次存储的主键,包括:将所述当前系统时间减去预设的系统初始时间的差值与所述循环数组的长度取余,获得所述主键在所述循环数组中的索引位置;根据索引位置从循环数组中获取上次存储的主键。5.根据权利要求1所述的方法,其特征在于,所述根据所述上次存储的主键中的时间戳、所述机器标识和所述自增后的序列标识生成新的主键,包括:判断是否检测到当前时刻处理的...

【专利技术属性】
技术研发人员:杨斌
申请(专利权)人:迈普通信技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1