主键生成方法及电子设备与流程

文档序号:33468560发布日期:2023-03-15 07:32阅读:来源:国知局

技术特征:
1.一种主键生成方法,其特征在于,包括:在入库处理时,基于当前系统时间戳信息处理生成第一标识序列;以及基于获取到的待入库数据记录的创建日期信息处理生成第二标识序列;基于所述第一标识序列和所述第二标识序列进行拼接处理,将处理得到的第三标识序列作为所述待入库数据记录的主键。2.根据权利要求1所述的主键生成方法,其特征在于,所述基于当前系统时间戳信息处理生成第一标识序列,包括:获取表征当前系统时间戳信息的数据,并以所述数据对当前时间戳变量进行赋值更新;在判断系统时间未回拨的情况下,进行是否发生毫秒切换的判断,在发生毫秒切换的情况下,重置自增序列号变量,并以当前时间戳变量的值对上次获取时间戳变量进行更新,否则对自增序列号变量进行加一更新,并以当前时间戳变量的值对上次获取时间戳变量进行更新。3.根据权利要求2所述的主键生成方法,其特征在于,所述基于当前系统时间戳信息处理生成第一标识序列,还包括:在以当前时间戳变量的值对上次获取时间戳变量进行更新之后,对当前时间戳变量的值进行压缩处理,得到压缩后的时间戳值;基于所述压缩后的时间戳值和自增序列号变量的值,拼接生成由多位二进制数构成的第一标识序列;其中,所述压缩后的时间戳值占据第一标识序列中的第一数目个位数,所述序列号变量的值占据第一标识序列的第二数目个位数。4.根据权利要求3所述的主键生成方法,其特征在于,所述对当前时间戳变量的值进行压缩处理,具体为:将所述当前时间戳变量的值与表征基准时间节点时间戳信息的值进行求差处理,将得到的差值作为所述压缩后的时间戳值。5.根据权利要求3或4所述的主键生成方法,其特征在于,所述基于获取到的待入库数据记录的创建日期信息处理生成第二标识序列,包括:从系统业务日志中,获取表征待入库数据记录的创建年信息的第一数值、以及获取表征待入库数据记录的创建月信息的第二数值,基于所述第一数值和第二数值,拼接生成由多位二进制数构成的第二标识序列;其中,所述第一数值占据第二标识序列中的第三数目个位数,所述第二数值占据第二标识序列中的4位。6.根据权利要求5所述的主键生成方法,其特征在于,所述主键生成方法应用于服务器集群;所述基于所述第一标识序列和所述第二标识序列进行拼接处理的过程中,还包括将表征实际处理服务器标识信息的数值拼接入所述第三标识序列。7.根据权利要求6所述的主键生成方法,其特征在于,所述第三标识序列为64位的二进制序列,所述第三标识序列的第1位为正负位;所述第一数目为36,所述第二数目为10,所述第三数目为7,所述表征实际处理服务器
标识信息的数值为6位二进制数。8.根据权利要求2所述的主键生成方法,其特征在于,在当前时间戳变量的值大于等于上次获取时间戳变量时,判断系统未发生系统回拨情况;所述进行是否发生毫秒切换的判断,具体为:将当前时间戳变量与上次获取时间戳变量进行值比较,在当前时间戳变量的值等于上次获取时间戳变量的值时,判断未发生毫秒切换,在当前时间戳变量的值大于上次获取时间戳变量的值时,判断发生毫秒切换。9.根据权利要求2所述的主键生成方法,其特征在于,还包括,在发生系统时间回拨的情况下,中止生成流程并输出报错信息;以及在自增序列号变量进行加一更新后,进行自增序列号是否溢出判断,在判断未发生溢出时,执行以当前时间戳变量的值对上次获取时间戳变量进行更新的步骤及后续步骤,否则,重复获取表征当前系统时间戳信息的数据并与当前时间戳变量进行比较,直至比较结果表征系统时间至少前进1毫秒,并以此刻获取的表征当前系统时间戳信息的数据对当前时间戳变量进行更新,之后执行以当前时间戳变量的值对上次获取时间戳变量进行更新的步骤及后续步骤。10.一种电子设备,其特征在于,包括:存储器,其上存储有可执行程序;处理器,用于执行所述存储器中的所述可执行程序,以实现权利要求1-9中任一项所述方法的步骤。

技术总结
本申请涉及主键生成方法及电子设备,属于数据库技术领域,本申请的方法包括,在入库处理时,基于当前系统时间戳信息处理生成第一标识序列;以及基于获取到的待入库数据记录的创建日期信息处理生成第二标识序列;基于第一标识序列和第二标识序列进行拼接处理,将处理得到的第三标识序列作为待入库数据记录的主键。本申请的技术方案,生成的主键中包含时间戳信息,并包含数据记录的创建日期信息,该种方式生成的主键既可以保障主键的全局唯一性和全局单调性,又可从主键中提取按日期进行表分片的分片信息,进而在时间分库分表的数据库应用场景中,可实现在根据主键查询时高效精确的定位分片表。位分片表。位分片表。


技术研发人员:朱清震
受保护的技术使用者:融慧金科金融服务外包(北京)有限公司
技术研发日:2022.11.11
技术公布日:2023/3/14
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1