掌桥专利:专业的专利平台
掌桥专利
首页

SQL文件配置方法、装置及终端设备

文献发布时间:2023-06-19 11:45:49


SQL文件配置方法、装置及终端设备

技术领域

本申请属于数据库技术领域,尤其涉及SQL文件配置方法、装置及终端设备。

背景技术

传统的数据库版本控制工具只能在数据库的级别上对SQL(Structured QueryLanguage,结构化查询语言)文件的版本进行控制,而不能在单个数据库灵活配置SQL文件,通常为了实现在单个数据库灵活配置SQL文件这个功能只能定义多个数据库,而由此会导致代码的冗余量较大。

发明内容

为克服相关技术中存在的问题,本申请实施例提供了SQL文件配置方法、装置及终端设备。

本申请是通过如下技术方案实现的:

第一方面,本申请实施例提供了一种SQL文件配置方法,包括:

获取目标数据库中各个第一结构化查询语言SQL文件之间的依赖关系;

基于预设的SQL文件选择条件和所述依赖关系,在所述第一SQL文件中选择至少一个所述第一SQL文件,生成SQL文件集;

采用预设变量替换所述SQL文件集中各个第一SQL文件的文件名和文件内容中预设位置的内容,生成多个第二SQL文件;其中,所述预设变量包括与文件名对应的文件名变量和与文件内容对应的内容变量;

执行所述多个第二SQL文件。

示例性的,所述第一目标SQL文件为不依赖于其他第一SQL文件的SQL文件。

可选的,所述根据所述依赖关系,确定与所述第一目标SQL文件存在依赖关系的第二目标SQL文件,包括:

基于所述有向无环图的拓扑结构,选择与所述第一目标SQL文件存在依赖关系的第二目标SQL文件;

其中,所述第二目标SQL文件包括直接依赖于所述第一目标SQL文件的第二目标SQL文件,和通过其他第一SQL文件间接依赖于所述目标SQL文件的第一SQL文件。

可选的,所述按照所述第一目标SQL文件和各个所述第二目标SQL文件之间的关联关系的关联顺序,生成所述SQL文件集,包括:

根据所述第一目标SQL文件和各个所述第二目标SQL文件在所述有向无环图中的拓扑顺序,对所述第一目标SQL文件和各个所述第二目标SQL文件进行排序,生成所述SQL文件集。

可选的,所述采用预设变量替换所述SQL文件集中各个第一SQL文件的文件名和文件内容中预设位置的内容,生成多个第二SQL文件,包括:

采用所述文件名变量替换所述SQL文件集中各个SQL文件的文件名中预设位置的内容;

采用所述内容变量替换所述SQL文件集中各个SQL文件的文件内容中预设位置的内容。

示例性的,SQL文件的文件名包括版本信息和文件名信息,所述采用所述文件名变量替换所述SQL文件集中各个SQL文件的文件名中预设位置的内容,具体为:

采用所述文件名变量替换所述SQL文件集中各个SQL文件的文件名中的文件名信息。

第二方面,本申请实施例提供了一种SQL文件配置装置,包括:

依赖关系获取模块,用于获取目标数据库中各个第一结构化查询语言SQL文件之间的依赖关系;

SQL文件集生成模块,用于基于预设的SQL文件选择条件和所述依赖关系,在所述第一SQL文件中选择至少一个所述第一SQL文件,生成SQL文件集;

变量替换模块,用于采用预设变量替换所述SQL文件集中各个第一SQL文件的文件名和文件内容中预设位置的内容,生成多个第二SQL文件;其中,所述预设变量包括与文件名对应的文件名变量和与文件内容对应的内容变量;

执行模块,用于执行所述多个第二SQL文件。

第三方面,本申请实施例提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面任一项所述的SQL文件配置方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项所述的SQL文件配置方法。

第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项所述的SQL文件配置方法。

可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。

本申请实施例与现有技术相比存在的有益效果是:

本申请实施例,获取目标数据库中各个第一SQL文件之间的依赖关系,再基于预设的SQL文件选择条件和上述依赖关系,在第一SQL文件中选择至少一个第一SQL文件生成SQL文件集,然后采用预设变量替换SQL文件集中各个SQL文件的文件名和文件内容中预设位置的内容,从而生成多个第二SQL文件,由此可以通过预设的SQL文件选择条件在目标数据库中选择所需要配置的SQL文件,然后采用预设变量对所需要配置的SQL文件的文件名和文件内容的变量进行替换,生成新的SQL文件,在目标数据库中就能够快速地对所需要配置的SQL文件进行配置,而且通过改变预设变量还能够对SQL文件进行重复配置,减少代码并提高SQL文件配置的效率。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请一实施例提供的SQL文件配置方法的应用场景示意图;

图2是本申请一实施例提供的SQL文件配置方法的流程示意图;

图3是本申请一实施例提供的SQL文件配置方法的流程示意图;

图4是本申请一实施例提供的有向无环图的拓扑结构示意图;

图5是本申请一实施例提供的SQL文件配置方法的流程示意图;

图6是本申请一实施例提供的SQL文件配置方法的流程示意图;

图7是本申请一实施例提供的SQL文件配置方法的流程示意图;

图8是本申请一实施例提供的SQL文件配置装置的流程示意图;

图9是本申请一实施例提供的SQL文件配置装置的结构示意图;

图10是本申请一实施例提供的终端设备的结构示意图;

图11是本申请一实施例提供的SQL文件配置方法所适用于的计算机的结构示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。

应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。

另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。

传统的数据库版本控制工具只能在数据库的级别上对SQL(Structured QueryLanguage,结构化查询语言)文件的版本进行控制,而不能在单个数据库灵活配置SQL文件,通常为了实现在单个数据库灵活配置SQL文件这个功能只能定义多个数据库,而由此会导致代码的冗余量较大。

基于上述问题,本申请实施例提供一种SQL文件配置方法,首先获取目标数据库中各个SQL文件之间的依赖关系,然后根据预设的SQL文件选择条件和该依赖关系,从目标数据库的各个SQL文件中选择出所需要的SQL文件,再采用预设变量替换选择出的SQL文件的文件名和文件内容中设定位置的内容,生成新的SQL文件并执行,由此就可以在目标数据库中快速地对所需要配置的SQL文件进行配置,而且通过改变预设变量还能够对SQL文件进行重复配置,减少代码并提高SQL文件配置的效率。

举例说明,本申请实施例可以应用到如图1所示的示例性场景中。在该场景中,终端10可以接收用户输入的预设的SQL文件选择条件、预设变量以及SQL文件配置请求,并上传到存储在服务器20;服务器20可以根据该SQL文件配置请求获取目标数据库中各个SQL文件之间的依赖关系,然后根据预设的SQL文件选择条件和该依赖关系,从目标数据库的各个SQL文件中选择出所需要的SQL文件,再采用预设变量替换选择出的SQL文件的文件名和文件内容中设定位置的内容,生成新的SQL文件并执行。

在上述场景中,终端10可以为计算机、平板电脑、笔记本电脑、上网本、个人数字助理(personal digital assistant,PDA)、智能手机等终端,本申请实施例对终端的具体类型不作任何限制。

需要说明的是,上述应用场景作为示例性说明,并不用于限定本申请实施例实施时的应用场景,事实上,本申请实施例也可以应用于其它应用场景中。比如,在另一些示例性应用场景中,也可以是通过云端向服务器20发送预设的SQL文件选择条件、预设变量以及SQL文件配置请求等信息。

为了使本技术领域的人员更好地理解本发明方案,下面将结合图1,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图2是本申请一实施例提供的SQL文件配置方法的示意性流程图,参照图2,对该SQL文件配置方法的详述如下:

在步骤101中,获取目标数据库中各个第一结构化查询语言SQL文件之间的依赖关系。

其中,目标数据库中各个第一SQL文件可以为该目标数据库中存储的所有SQL文件,也可以为该目标数据库中某个集合中的SQL文件,本申请实施例对此不予限定。

一般的,SQL文件的文件名可以包括版本信息和文件名信息。例如,SQL文件的文件名可以为v[version]_[desc].sql,其中前面的“version”为版本信息,版本信息可以按字典排序,版本号越大表示该SQL文件越新;后面的“desc”为文件名信息,“.sql”表征SQL文件的格式。

本实施例中,可以在SQL文件的文件内容中的设定位置记录与当前SQL文件存在依赖关系的其他SQL文件。例如,可以在SQL文件的文件内容中的第一行记录与当前SQL文件存在依赖关系的其他SQL文件,当然也可以在SQL文件的文件内容中的其他位置记录与当前SQL文件存在依赖关系的其他SQL文件,本申请实施例对设定位置不予限定。

另外,本申请实施例对依赖关系的表现形式也不予限定,例如,该表现形式可以以正文的形式记录该依赖关系,也可以以注释的形式记录该依赖关系,也可以以其他形式记录该依赖关系。

参见图3,在一些实施例中,基于图2所示的实施例,步骤101具体可以通过以下步骤实现:

在步骤1011中,获取各个所述第一SQL文件的文件内容中的注释内容,所述注释内容记录当前SQL文件所依赖的SQL文件。

本实施例中,在第一SQL文件的文件内容中以注释的形式,记录与当前第一SQL文件存在依赖关系的其他SQL文件。例如,该依赖关系具体可以为当前第一SQL文件所依赖的其他SQL文件。

具体地,以“V20191020_${table1}.sql”和“V20191030_${table1}.sql”两个SQL文件为例说明上述依赖关系。对于“V20191030_${table1}.sql”SQL文件,“V20191030”为该SQL文件的版本号,例如可以将该SQL文件的生成日期作为该SQL文件的版本号,“table1”为该SQL文件的文件名。

其中,在“V20191030_${table1}.sql”SQL文件的文件内容中可以以注释的形式,记录有表征“V20191030_${table1}.sql”SQL文件依赖于“V20191020_${table1}.sql”SQL文件的内容。而对于“V20191020_${table1}.sql”SQL文件,由于其不依赖于其他SQL文件,因此“V20191020_${table1}.sql”SQL文件的文件内容中可以不记录与依赖关系相关的内容。

在步骤1012中,根据所述注释内容确定各个所述第一SQL文件之间的依赖关系。

示例性的,对于A1文件、A2文件和A3文件,若A2文件依赖于A1文件,A3文件依赖于A2文件,则A1文件、A2文件和A3文件三者之间存在依赖关系;对于A1文件、A2文件和B1文件,若A2文件依赖于A1文件,A1文件和A2文件均不依赖于B1文件,且B1文件也不依赖于A1文件或A2文件,则A1文件和A2文件之间存在依赖关系,B1文件与A1文件和A2文件之间均不存在依赖关系。

具体地,“V20191020_${table1}.sql”和“V20191030_${table1}.sql”两个SQL文件之间存在依赖关系,具体是“V20191030_${table1}.sql”SQL文件依赖于“V20191020_${table1}.sql”SQL文件。

另外,若还存在“V20191031_${table1}.sql”SQL文件,其中“V20191031_${table1}.sql”SQL文件的文件内容中以注释的形式,记录有表征“V20191031_${table1}.sql”SQL文件依赖于“V20191030_${table1}.sql”SQL文件的内容,则“V20191020_${table1}.sql”SQL文件、“V20191030_${table1}.sql”SQL文件和“V20191031_${table1}.sql”SQL文件三者之间存在依赖关系,具体是“V20191031_${table1}.sql”SQL文件依赖于“V20191030_${table1}.sql”SQL文件,V20191030_${table1}.sql”SQL文件依赖于“V20191020_${table1}.sql”SQL文件。

可选的,步骤101还可以包括:

根据各个所述第一SQL文件之间的依赖关系,生成有向无环图;

其中,所述有向无环图的各个节点为各个所述第一SQL文件。

示例性的,对于“V20191020_${table1}.sql”SQL文件、“V20191030_${table1}.sql”SQL文件、“V20191031_${table1}.sql”SQL文件、“V20191020_${table2}.sql”SQL文件、“V20191030_${table2}.sql”SQL文件和“V20191030_view.sql”SQL文件,生成的有向无环图如图4所示。

其中,“V20191031_${table1}.sql”SQL文件依赖于“V20191030_${table1}.sql”SQL文件,“V20191030_${table1}.sql”SQL文件依赖于“V20191020_${table1}.sql”SQL文件,“V20191030_${table2}.sql”SQL文件依赖于“V20191020_${table2}.sql”SQL文件,而“V20191030_view.sql”SQL文件依赖于“V20191020_${table1}.sql”SQL文件和“V20191020_${table2}.sql”SQL文件。

在步骤102中,基于预设的SQL文件选择条件和所述依赖关系,在所述第一SQL文件中选择至少一个所述第一SQL文件,生成SQL文件集。

其中,上述预设的SQL文件选择条件可以包含在配置文件中,该配置文件可以通过终端或云端发送到服务器的数据库。

本实施例中,通过上述预设的SQL文件选择条件和上述依赖关系,服务器能够在第一SQL文件中选择所需要的SQL文件进行后续步骤的配置。

参见图5,一些实施例中,基于图2所示的实施例,步骤102具体可以通过以下过程实现:

在步骤1021中,基于所述预设的SQL文件选择条件和所述依赖关系,在所述第一SQL文件中确定第一目标SQL文件。

示例性的,所述第一目标SQL文件可以为不依赖于其他第一SQL文件的SQL文件。例如,对于图4中的五个SQL文件,“V20191020_${table1}.sql”SQL文件和“V20191020_${table2}.sql”SQL文件中的一者或者两者,都可以作为第一目标SQL文件,具体由哪一个SQL文件或两个SQL文件作为第一目标SQL文件,由预设的SQL文件选择条件来定。

在一种可能的实现方式中,该预设的SQL文件选择条件具体可以为指定无依赖的SQL文件,根据该SQL文件确定与该SQL文件存在依赖关系的SQL文件,将该SQL文件和与该SQL文件存在依赖关系的SQL文件,作为所需要的SQL文件。其中,本实施例中的预设的SQL文件选择条件可以通过正则表达式来实现,在SQL文件较多的情况下,不需要输入每个所需要的SQL文件的文件名,便于实现。

另外,在SQL文件较少的情况下,可以直接将所需要的各个SQL文件的文件名作为该预设的SQL文件选择条件,即可以直接根据各个SQL文件的文件名确定所需要的SQL文件。

在步骤1022中,基于所述第一目标SQL文件和所述依赖关系,在所述第一SQL文件中选择至少一个第二目标SQL文件,生成SQL文件集。

具体地,可以将依赖于第一目标SQL文件的SQL文件,作为该SQL文件集。其中,上述依赖于第一目标SQL文件的SQL文件,可以包括直接依赖于第一目标SQL文件的SQL文件,也可以包括通过其他第一SQL文件间接依赖于第一目标SQL文件的SQL文件。

示例性的,步骤1022可以包括以下步骤:

在步骤A中,根据所述依赖关系,确定与所述第一目标SQL文件存在依赖关系的第二目标SQL文件。

以图4所示为例,若第一目标SQL文件为“V20191020_${table1}.sql”SQL文件,则确定的第二目标SQL文件可以包括“V20191030_${table1}.sql”SQL文件和“V20191031_${table1}.sql”SQL文件;

若第一目标SQL文件为“V20191020_${table2}.sql”SQL文件,则确定的第二目标SQL文件可以包括“V20191030_${table2}.sql”SQL文件;

若第一目标SQL文件为“V20191020_${table1}.sql”SQL文件和V20191020_${table2}.sql”SQL文件,则确定的第二目标SQL文件可以包括“V20191030_${table1}.sql”SQL文件、“V20191031_${table1}.sql”SQL文件、“V20191030_${table2}.sql”SQL文件和“V20191030_view.sql”SQL文件。

在一些实施例中,上述步骤A具体可以为:

基于所述有向无环图的拓扑结构,选择与所述第一目标SQL文件存在依赖关系的第二目标SQL文件;

其中,所述第二目标SQL文件可以包括直接依赖于所述第一目标SQL文件的第二目标SQL文件,和通过其他第一SQL文件间接依赖于所述目标SQL文件的第一SQL文件。

具体地,可以根据有向无环图的拓扑结构,选择与第一目标SQL文件存在依赖关系的第二目标SQL文件。例如,可以将“V20191020_${table1}.sql”SQL文件作为第一目标SQL文件,根据如图4所示的有向无环图的拓扑结构,确定各个第二目标SQL文件。

在步骤B中,按照所述第一目标SQL文件和各个所述第二目标SQL文件之间的关联关系的关联顺序,生成所述SQL文件集。

以第一目标SQL文件为“V20191020_${table1}.sql”SQL文件为例,根据关联顺序生成的SQL文件集中,可以包括SQL文件列表,该SQL文件列表中依次包括“V20191020_${table1}.sql”、“V20191030_${table1}.sql”和“V20191031_${table1}.sql”。

在一些实施例中,上述步骤B具体可以为:

根据所述第一目标SQL文件和各个所述第二目标SQL文件在所述有向无环图中的拓扑顺序,对所述第一目标SQL文件和各个所述第二目标SQL文件进行排序,生成所述SQL文件集。

具体地,可以根据如图4所示的有向无环图的拓扑顺序,按照箭头的方向,对第一目标SQL文件和各个第二目标SQL文件进行排序,生成SQL文件集。

本实施例中,首先基于预设的SQL文件选择条件和上述依赖关系确定出第一目标SQL文件,再选择出与第一目标SQL文件存在依赖关系的第二目标SQL文件,进而生成SQL文件集,而预设的SQL文件选择条件可以为指定所需要配置的无依赖的SQL文件作为第一目标SQL文件,根据上述依赖关系即可确定直接依赖于或间接依赖于第一目标SQL文件的一个或多个第二目标SQL文件,进而得到SQL文件集,实现起来方便简单,而且通过改变预设的SQL文件选择条件即可进行下一次对SQL文件的配置,能够提高SQL文件配置的效率。

在步骤103中,采用预设变量替换所述SQL文件集中各个SQL文件的文件名和文件内容中预设位置的内容,生成多个第二SQL文件。

其中,所述预设变量可以包括与文件名对应的文件名变量和与文件内容对应的内容变量。

在一些实施例中,步骤103具体可以包括:

采用上述文件名变量替换SQL文件集中各个SQL文件的文件名中预设位置的内容;

采用上述内容变量替换SQL文件集中各个SQL文件的文件内容中预设位置的内容。

本实施例中,将SQL文件集中各个SQL文件的文件名中预设位置的内容替换为文件名变量,将SQL文件集中各个SQL文件的文件内容中预设位置的内容替换为内容变量,即可快速生成新的SQL文件,实现起来方便简单,而且通过改变文件名变量和内容变量即可进行下一次对SQL文件的配置,能够提高SQL文件配置的效率。

示例性的,SQL文件的文件名可以包括版本信息和文件名信息,所述采用所述文件名变量替换所述SQL文件集中各个SQL文件的文件名中预设位置的内容,具体可以为:

采用所述文件名变量替换所述SQL文件集中各个SQL文件的文件名中的文件名信息。

例如,文件名变量可以为“table3”,内容变量可以为“XXX”,对于“V20191020_${table1}.sql”SQL文件,采用文件名变量“table3”替换“V20191020_${table1}.sql”SQL文件的文件名中的文件名信息“table1”,采用内容变量“XXX”替换“V20191020_${table1}.sql”SQL文件的文件内容中预设位置的内容,得到的SQL文件的文件名为“V20191020_${table3}.sql”,预设位置的内容为“XXX”。

对于“V20191030_${table1}.sql”SQL文件,采用文件名变量“table3”替换“V20191030_${table1}.sql”SQL文件的文件名中的文件名信息“table1”,采用内容变量“XXX”替换“V20191030_${table1}.sql”SQL文件的文件内容中预设位置的内容,得到的SQL文件的文件名为“V20191030_${table3}.sql”,预设位置的内容为“XXX”。

对于“V20191031_${table1}.sql”SQL文件,采用文件名变量“table3”替换“V20191031_${table1}.sql”SQL文件的文件名中的文件名信息“table1”,采用内容变量“XXX”替换“V20191031_${table1}.sql”SQL文件的文件内容中预设位置的内容,得到的SQL文件的文件名为“V20191031_${table3}.sql”,预设位置的内容为“XXX”。

在步骤104中,执行所述多个第二SQL文件。

其中,在经过步骤101至步骤103得到上述多个第二SQL文件后,可以执行上述多个SQL文件。

参见图6,在一些实施例中,步骤104具体可以包括以下过程:

在步骤1041中,按照所述关联顺序,依次执行各个所述第二SQL文件。

由于各个第二SQL文件存在依赖关系,因此需要按照该依赖关系对应的关联顺序依次执行各个第二SQL文件。

例如,对于生成的三个第二SQL文件“V20191020_${table3}.sql”、“V20191020_${table3}.sql”和“V20191020_${table3}.sql”,本步骤中执行三个第二SQL文件的顺序依次为“V20191020_${table3}.sql”SQL文件、“V20191020_${table3}.sql”SQL文件和“V20191020_${table3}.sql”SQL文件。

在步骤1042中,在各个所述第二SQL文件执行完成之后,记录各个所述第二SQL文件。

其中,在各个第二SQL文件执行完成之后,可以在目标数据库中记录各个已执行完成的第二SQL文件的文件名,从而能够防止重复执行上述已执行完成的SQL文件。

可选的,在一些实施例中,在步骤104之前上述SQL文件配置方法也可以包括根据数据库中已有的SQL文件对各个第二SQL文件去重的步骤。

具体地,参见图7,基于图2所示的实施例,在步骤104之前,上述SQL文件配置方法还可以包括:

在步骤105中,在所述目标数据库中搜索是否存在与所述多个第二SQL文件相同的第一SQL文件,在所述目标数据库中存在与一个或多个所述第二SQL文件相同的第一SQL文件的情况下,删除对应的第二SQL文件。

本步骤中,在执行步骤103得出的各个第二SQL文件之前,可以先在目标数据库中搜索是否存在与上述多个第二SQL文件相同的第一SQL文件,如果目标数据库中存在与一个或多个第二SQL文件相同的第一SQL文件,则说明该第二SQL文件之前已经执行完成,本次不需要再次执行,可以删除对应的第二SQL文件,以避免重复执行SQL文件。

上述SQL文件配置方法,获取目标数据库中各个第一SQL文件之间的依赖关系,再基于预设的SQL文件选择条件和上述依赖关系,在第一SQL文件中选择至少一个第一SQL文件生成SQL文件集,然后采用预设变量替换SQL文件集中各个SQL文件的文件名和文件内容中预设位置的内容,从而生成多个第二SQL文件,由此可以通过预设的SQL文件选择条件在目标数据库中选择所需要配置的SQL文件,然后采用预设变量对所需要配置的SQL文件的文件名和文件内容的变量进行替换,生成新的SQL文件,在目标数据库中就能够快速地对所需要配置的SQL文件进行配置,而且通过改变预设变量还能够对SQL文件进行重复配置,减少代码并提高SQL文件配置的效率。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

对应于上文实施例所述的SQL文件配置方法,图8示出了本申请实施例提供的SQL文件配置装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。

参见图8,本申请实施例中的SQL文件配置装置可以包括依赖关系获取模块201、SQL文件集生成模块202、变量替换模块203和执行模块204。

其中,依赖关系获取模块201,用于获取目标数据库中各个第一结构化查询语言SQL文件之间的依赖关系;

SQL文件集生成模块202,用于基于预设的SQL文件选择条件和所述依赖关系,在所述第一SQL文件中选择至少一个所述第一SQL文件,生成SQL文件集;

变量替换模块203,用于采用预设变量替换所述SQL文件集中各个第一SQL文件的文件名和文件内容中预设位置的内容,生成多个第二SQL文件;其中,所述预设变量包括与文件名对应的文件名变量和与文件内容对应的内容变量;

执行模块204,用于执行所述多个第二SQL文件。

参见图9,一些实施例中,基于图8所示的SQL文件配置装置,上述依赖关系获取模块201可以包括获取单元2011和依赖关系确定单元2012。

其中,获取单元2011,用于获取各个所述第一SQL文件的文件内容中的注释内容,所述注释内容记录当前SQL文件所依赖的SQL文件;

依赖关系确定单元2012,用于根据所述注释内容确定各个所述第一SQL文件之间的依赖关系。

参见图9,一些实施例中,基于图8所示的SQL文件配置装置,上述依赖关系获取模块201还可以包括:

有向无环图生成单元2013,用于根据各个所述第一SQL文件之间的依赖关系,生成有向无环图;

其中,所述有向无环图的各个节点为各个所述第一SQL文件。

参见图9,一些实施例中,基于图8所示的SQL文件配置装置,上述SQL文件集生成模块202可以包括文件确定单元2021和文件集生成单元2022。

其中,文件确定单元2021,用于基于所述预设的SQL文件选择条件和所述依赖关系,在所述第一SQL文件中确定第一目标SQL文件;

文件集生成单元2022,用于基于所述第一目标SQL文件和所述依赖关系,在所述第一SQL文件中选择至少一个第二目标SQL文件,生成SQL文件集。

可选的,上述文件集生成单元2022具体可以用于:

根据所述依赖关系,确定与所述第一目标SQL文件存在依赖关系的第二目标SQL文件;

按照所述第一目标SQL文件和各个所述第二目标SQL文件之间的关联关系的关联顺序,生成所述SQL文件集。

参见图9,一些实施例中,基于图8所示的SQL文件配置装置,上述执行模块204可以包括执行单元2041和记录单元2042。

其中,执行单元2041,用于按照所述关联顺序,依次执行各个所述第二SQL文件;

记录单元2042,用于在各个所述第二SQL文件执行完成之后,记录各个所述第二SQL文件。

参见图9,一些实施例中,基于图8所示的SQL文件配置装置,上述SQL文件配置装置还可以包括去重模块205,上述去重模块205可以用于:

在所述数据库中搜索是否存在与所述多个第二SQL文件相同的第一SQL文件,在所述数据库中存在与一个或多个所述第二SQL文件相同的第一SQL文件的情况下,删除对应的第二SQL文件。

需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本申请实施例还提供了一种终端设备,参见图10,该终端设备300可以包括:至少一个处理器310、存储器320以及存储在所述存储器320中并可在所述至少一个处理器310上运行的计算机程序,所述处理器310执行所述计算机程序时实现上述任意各个方法实施例中的步骤,例如图2所示实施例中的步骤S101至步骤S104。或者,处理器310执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,例如图8所示模块201至204的功能。

示例性的,计算机程序可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器320中,并由处理器310执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序段,该程序段用于描述计算机程序在终端设备300中的执行过程。

本领域技术人员可以理解,图10仅仅是终端设备的示例,并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如输入输出设备、网络接入设备、总线等。

处理器310可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器320可以是终端设备的内部存储单元,也可以是终端设备的外部存储设备,例如插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。所述存储器320用于存储所述计算机程序以及终端设备所需的其他程序和数据。所述存储器320还可以用于暂时地存储已经输出或者将要输出的数据。

总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。

本申请实施例提供的SQL文件配置方法可以应用于智能手机、计算机、平板电脑、笔记本电脑、上网本、个人数字助理(personal digital assistant,PDA)等终端设备上,本申请实施例对终端设备的具体类型不作任何限制。

以所述终端设备为计算机为例。图11示出的是与本申请实施例提供的计算机的部分结构的框图。参考图11,计算机包括:通信电路410、存储器420、输入单元430、显示单元440、音频电路450、无线保真(wireless fidelity,WiFi)模块460、处理器470以及电源480等部件。本领域技术人员可以理解,图11中示出的计算机结构并不构成对计算机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

下面结合图11对计算机的各个构成部件进行具体的介绍:

通信电路410可用于收发信息或通话过程中,信号的接收和发送,特别地,将图像采集设备发送的图像样本接收后,给处理器470处理;另外,将图像采集指令发送给图像采集设备。通常,通信电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low Noise Amplifier,LNA)、双工器等。此外,通信电路410还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(Global System of Mobile communication,GSM)、通用分组无线服务(GeneralPacket Radio Service,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long TermEvolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。

存储器420可用于存储软件程序以及模块,处理器470通过运行存储在存储器420的软件程序以及模块,从而执行计算机的各种功能应用以及数据处理。存储器420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

输入单元430可用于接收输入的数字或字符信息,以及产生与计算机的用户设置以及功能控制有关的键信号输入。具体地,输入单元430可包括触控面板431以及其他输入设备432。触控面板431,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板431上或在触控面板431附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板431可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器470,并能接收处理器470发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板431。除了触控面板431,输入单元430还可以包括其他输入设备432。具体地,其他输入设备432可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。

显示单元440可用于显示由用户输入的信息或提供给用户的信息以及计算机的各种菜单。显示单元440可包括显示面板441,可选的,可以采用液晶显示器(Liquid CrystalDisplay,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板441。进一步的,触控面板431可覆盖显示面板441,当触控面板431检测到在其上或附近的触摸操作后,传送给处理器470以确定触摸事件的类型,随后处理器470根据触摸事件的类型在显示面板441上提供相应的视觉输出。虽然在图11中,触控面板431与显示面板441是作为两个独立的部件来实现计算机的输入和输入功能,但是在某些实施例中,可以将触控面板431与显示面板441集成而实现计算机的输入和输出功能。

音频电路450可提供用户与计算机之间的音频接口。音频电路450可将接收到的音频数据转换后的电信号,传输到扬声器由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路450接收后转换为音频数据,再将音频数据输出处理器470处理后,经通信电路410以发送给比如另一计算机,或者将音频数据输出至存储器420以便进一步处理。

WiFi属于短距离无线传输技术,计算机通过WiFi模块460可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图10示出了WiFi模块460,但是可以理解的是,其并不属于计算机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。

处理器470是计算机的控制中心,利用各种接口和线路连接整个计算机的各个部分,通过运行或执行存储在存储器420内的软件程序和/或模块,以及调用存储在存储器420内的数据,执行计算机的各种功能和处理数据,从而对计算机进行整体监控。可选的,处理器470可包括一个或多个处理单元;优选的,处理器470可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器470中。

计算机还包括给各个部件供电的电源480(比如电池),优选的,电源480可以通过电源管理系统与处理器470逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。

本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述SQL文件配置方法各个实施例中的步骤。

本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时实现可实现上述SQL文件配置方法各个实施例中的步骤。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

相关技术
  • SQL文件配置方法、装置及终端设备
  • 终端设备远程配置方法、装置、终端设备和可读存储介质
技术分类

06120113047639