分布式数据库语句执行方法、装置、设备及存储介质制造方法及图纸

技术编号:36043819 阅读:13 留言:0更新日期:2022-12-21 10:51
本发明专利技术公开了一种分布式数据库语句执行方法、装置、设备及存储介质,涉及数据库领域。该方法包括:响应于接收到待执行的SQL语句,判断所述SQL语句是否包含主键信息;在所述SQL语句不包含主键信息的情况下,向序列服务端发送全局变量获取请求,并依据所述序列服务端反馈的全局变量,对所述SQL语句进行更新;基于更新后的SQL语句,生成与数据库对应的目标SQL语句并下发至数据库。本发明专利技术实施例的技术方案,可以使得分布式数据库支持主键缺省情况下的数据存储。据存储。据存储。

【技术实现步骤摘要】
分布式数据库语句执行方法、装置、设备及存储介质


[0001]本专利技术涉及数据库领域,尤其涉及一种分布式数据库语句执行方法、装置、设备及存储介质。

技术介绍

[0002]主关键字(primary key)简称主键,是数据库表中的一个或多个字段,用于唯一的标识表中的某一条记录,数据库可以依据主键对数据库表执行相应的数据新增、删除、修改和查询操作。
[0003]在很多情况下,数据库还要对一些缺省主键的表进行操作。在单机数据库场景下,以创建数据库表为例,现有技术经常采用下述两种方式创建缺省主键的表:1)判断数据库表中是否存在非空唯一索引,若是,则将第一非空唯一索引作为主键;若否,则单机数据库生成一个不可见字段作为主键,该字段可以是自增字段,字段值随着每条数据插入而自增。
[0004]在分布式数据库需要对缺省主键的表进行操作时,当相同的数据下压到多个数据库时,若仍然由每个数据库单独生成一个字段作为主键的方式来创建表或者插入数据,则各数据库针对同一条数据生成的主键可能存在冲突,影响数据正常存储。

技术实现思路

[0005]本专利技术提供了一种分布式数据库语句执行方法、装置、设备及存储介质,以解决分布式数据库不支持主键缺省情况下进行数据存储的问题。
[0006]根据本专利技术的一方面,提供了一种分布式数据库语句执行方法,包括:
[0007]响应于接收到待执行的SQL语句,判断所述SQL语句是否包含主键信息;
[0008]在所述SQL语句不包含主键信息的情况下,向序列服务端发送全局变量获取请求,并依据所述序列服务端反馈的全局变量,对所述SQL语句进行更新;
[0009]基于更新后的SQL语句,生成与分布式数据库对应的目标SQL语句并下发至分布式数据库。
[0010]根据本专利技术的另一方面,提供了一种分布式数据库语句执行装置,包括:
[0011]主键判断模块,用于响应于接收到待执行的SQL语句,判断所述SQL语句是否包含主键信息;
[0012]语句更新模块,用于在所述SQL语句不包含主键信息的情况下,向序列服务端发送全局变量获取请求,并依据所述序列服务端反馈的全局变量,对所述SQL语句进行更新;
[0013]语句下发模块,用于基于更新后的SQL语句,生成与分布式数据库对应的目标SQL语句并下发至分布式数据库。
[0014]根据本专利技术的另一方面,提供了一种电子设备,所述电子设备包括:
[0015]至少一个处理器;以及
[0016]与所述至少一个处理器通信连接的存储器;其中,
[0017]所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序
被所述至少一个处理器执行,以使所述至少一个处理器能够执行本专利技术任一实施例所述的分布式数据库语句执行方法。
[0018]根据本专利技术的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本专利技术任一实施例所述的分布式数据库语句执行方法。
[0019]本专利技术实施例的技术方案,响应于接收到待执行的SQL语句,判断SQL语句是否包含主键信息,在SQL语句不包含主键信息的情况下,向序列服务端发送全局变量获取请求,并依据序列服务端反馈的全局变量,对SQL语句进行更新,最终基于更新后的SQL语句,生成与分布式数据库对应的目标SQL语句并下发至分布式数据库,解决了分布式数据库不支持主键缺省情况下进行数据存储的问题,提高了分布式数据库语句执行的灵活性,扩大分布式数据库的适用范围,满足更多的业务场景。
[0020]应当理解,本部分所描述的内容并非旨在标识本专利技术的实施例的关键或重要特征,也不用于限制本专利技术的范围。本专利技术的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0021]为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0022]图1是根据本专利技术实施例提供的一种分布式数据库语句执行方法的流程图;
[0023]图2是根据本专利技术实施例提供的一种分布式数据库语句执行方法的流程图;
[0024]图3是根据本专利技术实施例提供的一种分布式数据库语句执行方法的流程图;
[0025]图4是根据本专利技术实施例提供的执行表创建语句的时序图;
[0026]图5是根据本专利技术实施例提供的执行数据插入语句的时序图;
[0027]图6是根据本专利技术实施例提供的一种分布式数据库语句执行装置的结构示意图;
[0028]图7是实现本专利技术实施例的分布式数据库语句执行方法的电子设备的结构示意图。
具体实施方式
[0029]为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分的实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。
[0030]需要说明的是,本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本专利技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于
清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0031]图1为本专利技术实施例提供的一种分布式数据库语句执行方法的流程图,本实施例可适用于分布式数据库在无主键时执行SQL语句的情况,该方法可以由分布式数据库语句执行装置来执行,该分布式数据库语句执行装置可以采用硬件和/或软件的形式实现,该分布式数据库语句执行装置可配置于各种通用计算设备中,例如,通过计算设备可以是分布式计算引擎。如图1所示,该方法包括:
[0032]S110、响应于接收到待执行的SQL语句,判断SQL语句是否包含主键信息。
[0033]待执行的结构化查询语言(Structured Query Language,简称SQL)语句是用户端发送的用于指示分布式数据库执行相应操作的语句,待执行的SQL语句可以是表创建语句、数据插入语句或者数据查询语句等。主键信息是指与表的主键关联的信息,示例性的,主键信息可以是主键字段或者主键值。
[0034]本专利技术实施例中,分布式计算引擎在接收到用户端发送的待执行的SQL语句时,首先判断该SQL语句是否包含主键信息。具体的,分布式计算引擎接收到SQL语句后,通过提取本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式数据库语句执行方法,其特征在于,包括:响应于接收到待执行的结构化查询语言SQL语句,判断所述SQL语句是否包含主键信息;在所述SQL语句不包含主键信息的情况下,向序列服务端发送全局变量获取请求,并依据所述序列服务端反馈的全局变量,对所述SQL语句进行更新;基于更新后的SQL语句,生成与分布式数据库对应的目标SQL语句并下发至分布式数据库。2.根据权利要求1所述的方法,其特征在于,响应于接收到待执行的SQL语句,判断所述SQL语句是否包含主键信息,包括:响应于接收到待执行的表创建语句,判断所述表创建语句中的待创建表是否包含主键字段;在所述SQL语句不包含主键信息的情况下,向序列服务端发送全局变量获取请求,并依据所述序列服务端反馈的全局变量,对所述SQL语句进行更新,包括:在所述待创建表不包含主键字段的情况下,向序列服务端发送全局变量获取请求,并依据所述序列服务端反馈的全局变量,生成所述待创建表的主键字段;将所述主键字段添加至所述表创建语句。3.根据权利要求1所述的方法,其特征在于,响应于接收到待执行的SQL语句,判断所述SQL语句是否包含主键信息,包括:响应于接收到待执行的数据插入语句,判断所述数据插入语句中的待插入数据是否包含主键值;在所述SQL语句不包含主键信息的情况下,向序列服务端发送全局变量获取请求,并依据所述序列服务端反馈的全局变量,对所述SQL语句进行更新,包括:在所述待插入数据不包含主键值的情况下,判断所述数据插入语句中是否包含待查询表;在所述待插入数据不包含主键值且所述数据插入语句中不包含待查询表的情况下,向序列服务端发送全局变量获取请求,并依据所述序列服务端反馈的全局变量,生成所述待插入数据的主键值;将所述主键值添加至所述数据插入语句。4.根据权利要求3所述的方法,其特征在于,在所述SQL语句不包含主键信息的情况下,向序列服务端发送全局变量获取请求,并依据所述序列服务端反馈的全局变量,对所述SQL语句进行更新,还包括:在所述待插入数据不包含主键值且所述数据插入语句中包含待查询表的情况下,判断所述待查询表中是否包含主键值;在所述待查询表中不...

【专利技术属性】
技术研发人员:吴宇松王海军张军
申请(专利权)人:金篆信科有限责任公司
类型:发明
国别省市:

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

1