CN112632946A - 自动建表的方法、装置、计算机设备和存储介质 - Google Patents

自动建表的方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN112632946A
CN112632946A CN202011528614.9A CN202011528614A CN112632946A CN 112632946 A CN112632946 A CN 112632946A CN 202011528614 A CN202011528614 A CN 202011528614A CN 112632946 A CN112632946 A CN 112632946A
Authority
CN
China
Prior art keywords
database
preset
building
sql
script
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011528614.9A
Other languages
English (en)
Inventor
曾少文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Puhui Enterprise Management Co Ltd
Original Assignee
Ping An Puhui Enterprise Management Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ping An Puhui Enterprise Management Co Ltd filed Critical Ping An Puhui Enterprise Management Co Ltd
Priority to CN202011528614.9A priority Critical patent/CN112632946A/zh
Publication of CN112632946A publication Critical patent/CN112632946A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/183Tabulation, i.e. one-dimensional positioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Bioethics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及开发辅助技术领域,提供了一种自动建表的方法、装置、计算机设备和存储介质,包括:获取预设的EXCEL模板,添加至预设的字典文件夹中;在所述字典文件夹中的EXCEL模板中输入需求表详细信息,生成表字典;读取所述表字典,并执行预设的建表处理逻辑,生成sql建表脚本;执行所述sql建表脚本,并在预设的数据库中生成对应的数据库表。本申请自动生成sql建表脚本,及自动生成对应的数据库表,无需开发人员编写建表脚本,降低出错率以及人工成本,提升建表效率。

Description

自动建表的方法、装置、计算机设备和存储介质
技术领域
本申请涉及开发辅助的技术领域,特别涉及一种自动建表的方法、装置、计算机设备和存储介质。
背景技术
数据库建表是软件研发流程中不可缺少的一部分。传统建表流程中,大部分都是人工拷贝已有的脚本进行修改,或者编写一份脚本语句,不同公司对于建表有不同的规则及约束,加上校验流程,会耗费大量人力及时间在重复的工作上,效果特别差。
开发人员在修改脚本时,经常出现表名或者字段超出长度,漏写业务主键,网站扫描脚本名称不对等简单问题重复发生。如出现细节性错误,建表申请流程则被打回,建表时间加长。总体来讲,繁琐重复的工作都随着新增建表的数量而指数级增长。
发明内容
本申请的主要目的为提供一种自动建表的方法、装置、计算机设备和存储介质,旨在克服目前建表时需要人工进行脚本修改造成效率低下的缺陷。
为实现上述目的,本申请提供了一种自动建表的方法,包括以下步骤:
获取预设的EXCEL模板,添加至预设的字典文件夹中;
接收输入指令,根据所述输入指令在所述字典文件夹中的EXCEL模板中输入需求表详细信息,生成表字典;其中,所述需求表详细信息为需要生成的数据库表的属性信息;
根据接收的启动建表指令,读取所述表字典,并执行预设的建表处理逻辑,生成sql建表脚本;
执行所述sql建表脚本,并在预设的数据库中生成对应的数据库表。
进一步地,所述根据接收的启动建表指令,读取所述表字典,并执行预设的建表处理逻辑,生成sql建表脚本的步骤之后,还包括:
验证是否具有建表权限;
若具有建表权限,则进入执行所述sql建表脚本,并在预设的数据库中生成对应的数据库表的步骤;
若不具有建表权限,则将所述sql脚本发送至数据库管理终端,以对所述sql脚本进行扫描以及校验;扫描以及校验通过之后,则通过所述数据库管理终端执行所述sql建表脚本,并在预设的数据库中生成对应的数据库表。
进一步地,所述对所述sql脚本进行扫描以及校验的步骤,包括:
扫描所述sql脚本,得到各个sql语句是否合规的结果;
按照预设的校验规则,依次对所述sql语句进行校验;所述校验规则包括长度校验规则、列类型校验规则、默认生成规则和优化建议规则中的一个或多个。
进一步地,所述执行所述sql建表脚本,并在预设的数据库中生成对应的数据库表的步骤之后,包括:
若获取到所述数据库返回执行结果中提示在所述数据库中未生成所述数据库表,则检测所述表字典中是否存在不满足预设规则的需求表详细信息;其中,所述预设规则为所述需求表详细信息需要满足的条件规则;
若存在,则按照所述预设规则,对不满足预设规则的需求表详细信息进行修改,并重新进入所述接收用户的启动建表指令,读取所述表字典,并执行预设的建表处理逻辑,生成sql建表脚本的步骤。
进一步地,所述执行所述sql建表脚本,并在预设的数据库中生成对应的数据库表的步骤之后,包括:
获取终端的信息;所述终端为在预设的数据库中生成所述数据库表的终端;
对所述终端的信息进行编码,得到第一指定位数的第一字符串;
对生成的所述数据库表中的内容进行哈希计算,得到对应的哈希值;
将所述哈希值进行编码,得到第二指定位数的第二字符串;
将所述第二字符串与所述第一字符串进行拼接,得到拼接字符串,并将所述拼接字符串命名为所述数据库表的名称。
进一步地,所述将所述第二字符串与所述第一字符串进行拼接,得到拼接字符串,并将所述拼接字符串命名为所述数据库表的名称的步骤之后,还包括:
在所述数据库表中的内容更新时,对更新后的所述数据库表中的内容进行哈希计算,得到对应的更新哈希值;
将所述更新哈希值进行编码,得到第二指定位数的第三字符串;
将所述第三字符串与所述第一字符串进行拼接,得到一更新拼接字符串,并将所述更新拼接字符串更新为所述数据库表的新名称;
获取更新所述数据库表名称的更新时间;
在数据库中建立所述更新时间与所述新名称的对应关系。
进一步地,所述执行所述sql建表脚本,并在预设的数据库中生成对应的数据库表的步骤之后,包括:
获取终端的信息;所述终端为在预设的数据库中生成所述数据库表的终端;
对所述终端的信息进行哈希计算,得到终端哈希值;
将所述终端哈希值发送至数据库管理终端;其中,所述数据库管理终端接收到所述终端哈希值时,随机选择一种预设加密算法,并建立所述预设加密算法与所述终端哈希值的关联关系;
接收所述数据库管理终端反馈的所述预设加密算法,并基于所述预设加密算法对所述数据库表进行加密。
本申请还提供了一种自动建表的装置,包括:
第一获取单元,用于获取预设的EXCEL模板,添加至预设的字典文件夹中;
生成单元,用于接收输入指令,根据所述输入指令在所述字典文件夹中的EXCEL模板中输入需求表详细信息,生成表字典;其中,所述需求表详细信息为需要生成的数据库表的属性信息;
第一执行单元,用于根据接收的启动建表指令,读取所述表字典,并执行预设的建表处理逻辑,生成sql建表脚本;
第二执行单元,用于执行所述sql建表脚本,并在预设的数据库中生成对应的数据库表。
本申请还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
本申请提供的自动建表的方法、装置、计算机设备和存储介质,包括:获取预设的EXCEL模板,添加至预设的字典文件夹中;在所述字典文件夹中的EXCEL模板中输入需求表详细信息,生成表字典;读取所述表字典,并执行预设的建表处理逻辑,生成sql建表脚本;执行所述sql建表脚本,并在预设的数据库中生成对应的数据库表。本申请自动生成sql建表脚本,及自动生成对应的数据库表,无需开发人员编写建表脚本,降低出错率以及人工成本,提升建表效率。
附图说明
图1是本申请一实施例中自动建表的方法步骤示意图;
图2是本申请一实施例中自动建表的装置结构框图;
图3为本申请一实施例的计算机设备的结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,本申请一实施例中提供了一种自动建表的方法,包括以下步骤:
步骤S1,获取预设的EXCEL模板,添加至预设的字典文件夹中;
步骤S2,接收输入指令,根据所述输入指令在所述字典文件夹中的EXCEL模板中输入需求表详细信息,生成表字典;其中,所述需求表详细信息为需要生成的数据库表的属性信息;
步骤S3,根据接收的启动建表指令,读取所述表字典,并执行预设的建表处理逻辑,生成sql建表脚本;
步骤S4,执行所述sql建表脚本,并在预设的数据库中生成对应的数据库表。
在本实施例中,在本实施例中,在终端上构建有一个建表生成器,其用于自动生成数据库表,该数据库表是数据库中用于保存数据的网格虚拟表。上述建表生成器则用于实现上述字段建表的方法。本申请中的方法也可以应用于智慧城市技术领域中,以推动智慧城市的建设。
如上述步骤S1所述的,在每次需要生成数据库表时,需要获取一个预设的EXCEL模板,并将其添加至建表生成器的字典文件夹。上述EXCEL模板为开发人员预先配置于终端中。
如上述步骤S2所述的,用户可以按照规则输入对应的需求表详细信息。具体地,终端接收到上述用户的输入指令,并根据该输入指令,在所述字典文件夹中的EXCEL模板中输入需求表详细信息,生成表字典。其中,上述需求表详细信息指的是需要生成的数据库表的属性信息,其包括表名、表名注释、是否分区表、分区开始时间、列名、列名注释、列类型、默认值、列是否可为空、主键、索引名等信息。
如上述步骤S3所述的,上述建表生成器中预先配置有生成sql建表脚本的建表处理逻辑,同时还配置有一个.bat图标启动工具,该.bat图标启动工具是windows图标操作入口,用户点击该图标会启动建表生成器进行sql建表脚本的生成以及后续操作。在本实施例中,用户点击上述.bat图标,触发建表指令,终端接收到该建表指令,则读取所述表字典,执行建表处理逻辑,以生成sql建表脚本。具体地,预先编写有一个perl脚本,将上述表字典复制到文本文件中,并执行上述perl脚本,则可以自动生成上述表字典对应的表结构,基于上述表结构进行转换得到对应的sql语句,即上述sql建表脚本。
如上述步骤S4所述的,上述sql建表脚本即是用于自动建表的脚本,因此,执行上述sql建表脚本,则可以自动在预设的数据库中生成对应的数据库表。在本实施例中,自动生成sql建表脚本,及自动生成对应的数据库表,无需开发人员编写建表脚本,降低出错率以及人工成本,提升建表效率。
在另一实施例中,所述根据接收的启动建表指令,读取所述表字典,并执行预设的建表处理逻辑,生成sql建表脚本的步骤S3之后,还包括:
验证是否具有建表权限;
若具有建表权限,则进入执行所述sql建表脚本,并在预设的数据库中生成对应的数据库表的步骤;
若不具有建表权限,则将所述sql脚本发送至数据库管理终端,以对所述sql脚本进行扫描以及校验;扫描以及校验通过之后,则通过所述数据库管理终端执行所述sql建表脚本,并在预设的数据库中生成对应的数据库表。
在本实施例中,因安全或者政策问题,部分终端没有建表权限;若该终端具有DBA(数据库管理员)分配的建表权限,则可以实现自动建表,即可以执行所述sql建表脚本,并在预设的数据库中生成对应的数据库表。
若终端没有建表权限,则不能自动建表;此时,则需要将该sql脚本发送至DBA终端(数据库管理终端),通过数据库管理终端对所述sql脚本进行扫描以及校验,并通过数据库管理终端实现自动建表。
在本实施例中,所述对所述sql脚本进行扫描以及校验的步骤,包括:
扫描所述sql脚本,得到各个sql语句是否合规的结果;
按照预设的校验规则,依次对所述sql语句进行校验;所述校验规则包括长度校验规则、列类型校验规则、默认生成规则和优化建议规则中的一个或多个。
在本实施例中,数据库管理终端实现对上述sql脚本的扫描和校验,其中扫描过程采用代码扫描工具扫描上述sql脚本,以检测sql脚本中的sql语句是否满足语法要求,若不满足语法要求,则不合规,后续该sql语句则无法被执行;若无语法问题,则判定sql语句合规。同时,由于sql语句中携带有需求表详细信息,但是上述需求表详细信息并未进行过校验,因此需要进行长度校验规则、列类型校验规则。进一步地,上述sql脚本中还可以包括关于脚本生成规则、脚本优化的sql语句,因此,在一些实施例中,也需要对sql语句进行默认生成规则和优化建议规则的校验。
在又一实施例中,所述执行所述sql建表脚本,并在预设的数据库中生成对应的数据库表的步骤S4之后,包括:
步骤S41,若获取到所述数据库返回的执行结果中提示在所述数据库中未生成所述数据库表,则检测所述表字典中是否存在不满足预设规则的需求表详细信息;其中,所述预设规则为所述需求表详细信息需要满足的条件规则;
步骤S42,若存在,则按照所述预设规则,对不满足预设规则的需求表详细信息进行修改,并重新进入所述接收用户的启动建表指令,读取所述表字典,并执行预设的建表处理逻辑,生成sql建表脚本的步骤。
在本实施例中,若在执行所述sql建表脚本之后,无法生成数据库表,则上述数据库会返回建表失败的执行结果提示,此时,则需要检测所述表字典中是否存在不满足预设规则的需求表详细信息。上述预设规则指的是上述需求表详细信息需要满足的条件规则,例如列长度需要满足长度规则,字段长度也需要满足对应的长度规则。上述检测所述表字典中是否存在不满足预设规则的需求表详细信息,具体包括:查看需求表详细信息中的列长度是否满足规则,字段长度是否满足规则等。若不满足,则按照上述预设规则要求对其进行修改,并在修改之后,重新生成sql建表脚本。例如,将列长度修改为满足列长度规则,以及将字段长度修改为满足字段长度规则等。在本实施例中,为了快速建表,因此,在生成上述表字典之后,直接进行上述建表过程,若建表失败,则返回进行表字典的检测。
在又一实施例中,所述执行所述sql建表脚本,并在预设的数据库中生成对应的数据库表的步骤S4之后,包括:
步骤S5,获取终端的信息;所述终端为在预设的数据库中生成所述数据库表的终端;
步骤S6,对所述终端的信息进行编码,得到第一指定位数的第一字符串;
步骤S7,对生成的所述数据库表中的内容进行哈希计算,得到对应的哈希值;
步骤S8,将所述哈希值进行编码,得到第二指定位数的第二字符串;
步骤S9,将所述第二字符串与所述第一字符串进行拼接,得到拼接字符串,并将所述拼接字符串命名为所述数据库表的名称。
在本实施例中,生成所述数据库表之后还需要对数据库表进行命名,目前的命名方式通常是根据数据库表的生成时间以及数据库表的类型来进行命名;这种命名方式只能关联数据库表的类型,并不能很好和数据库表中具体的内容进行关联;而且数据库表中的内容发生更改时,也无法及时发现。
在本实施例中,获取终端的信息,终端的信息可以是一个代号,也可以是一个中文名称,例如admin123;对该终端的信息进行编码,得到一个第一指定位数的第一字符串,可选地,第一指定位数通常为三位数。例如,上述第一字符串为ttd。
进一步地,对生成的所述数据库表中的内容进行哈希计算,得到对应的哈希值,可以理解的是,最开始生成的所述数据库表中仅仅存储有各个字段的名称,并没有存入对应各个字段的值,即该数据库表是一个空表,即上述哈希值是一个空表所对应的哈希值。应当理解的是,当数据库表中的内容发生变化/更新时,对该数据库表中的内容进行哈希计算时,会得到不同的哈希值。
进而,将所述哈希值进行编码,得到第二指定位数的第二字符串;可选地第二指定位数为3-5位数,通常为三位数,不宜过长,避免后续生成的数据库表名称过长。例如,在一实施例中,上述第二字符串为s13j。
将所述第二字符串与所述第一字符串进行拼接,得到一拼接字符串,命名为所述数据库表的名称。在本实施例中,可以将第一字符串与第二字符串直接进行拼接,且第一字符串排列在前,得到上述拼命字符串为ttds13j。在其他实施例中,也可使用拼接字符进行第二字符串与所述第一字符串的拼接,例如得到的拼接字符串为ttd-s13j。
可以理解的是,上述第一字符串中关联了生成所述数据库表的设备的信息,上述第二字符串关联了上述数据库表中的内容。进而,在本实施例中,将拼接字符串命名为所述数据库表的名称,则可以在数据库表的名称中关联数据库表的创建信息以及内容信息。可以,尤为重要的是,上述拼接字符串中的第二字符串中可以作为上述数据库表中内容的佐证,在判断数据库表中的内容是否发生修改/更新时,只需要对数据库表中的内容进行哈希计算,进而进行编码,得到对应的字符串,将其与上述数据库表名称中的第二字符串进行对比,便可以判断出数据库表中的内容是否修改。
在一实施例中,所述将所述第二字符串与所述第一字符串进行拼接,得到拼接字符串,并将所述拼接字符串命名为所述数据库表的名称的步骤S9之后,还包括:
步骤S10,在所述数据库表中的内容更新时,对更新后的所述数据库表中的内容进行哈希计算,得到对应的更新哈希值;
步骤S11,将所述更新哈希值进行编码,得到第二指定位数的第三字符串;
步骤S12,将所述第三字符串与所述第一字符串进行拼接,得到更新拼接字符串,并将所述更新拼接字符串更新为所述数据库表的新名称;
步骤S13,获取更新所述数据库表名称的更新时间;
步骤S14,在数据库中建立所述更新时间与所述新名称的对应关系。
在本实施例中,在数据库表中的内容更新时,需要对数据库表中的内容重新进行哈希计算,得到对应的更新哈希值,并重新进行编码处理,得到上述第三字符串。本实施例中的哈希计算与编码与上述实施例中一致。由于上述数据库表中的内容发生了改变,因此经过哈希计算得到的上述更新哈希值也不同,进而第三字符串也不同于第二字符串。
此时,为了在此时的数据库表的名称中关联当前的数据库表内容,则将上述第三字符串与第一字符串进行拼接得到的更新拼接字符串更新为数据库表的新名称。
为了保留对数据库表的名称修改痕迹,需要将上述数据库表的新名称保存在数据库中。在本实施例中,将其与更新所述数据库表名称的更新时间进行管关联存储。
在一实施例中,所述执行所述sql建表脚本,并在预设的数据库中生成对应的数据库表的步骤S4之后,包括:
步骤S4a,获取终端的信息;所述终端为在预设的数据库中生成所述数据库表的终端;
步骤S4b,对所述终端的信息进行哈希计算,得到终端哈希值;
步骤S4c,将所述终端哈希值发送至数据库管理终端;其中,所述数据库管理终端接收到所述终端哈希值时,随机选择一种预设加密算法,并建立所述预设加密算法与所述终端哈希值的关联关系;
步骤S4d,接收所述数据库管理终端反馈的所述预设加密算法,并基于所述预设加密算法对所述数据库表进行加密。
在本实施例中,在针对每一数据库表进行加密时可以采用不同的预设加密算法,提升数据库表的安全性,避免非法用户在知晓一个加密算法之后破译出所有数据库表的加密算法。同时,上述预设加密算法的约定关系存储于数据库管理终端中,无需记忆,便于直接使用。上述预设加密算法的约定关系与终端的信息直接进行关联,且关联的终端信息是一个哈希值,非明文信息,保障信息安全。
在一实施例中,上述方法还包括:
将所述数据库表存储于区块链中。其中,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
参照图2,本申请一实施例中还提供了一种自动建表的装置,包括:
第一获取单元10,用于获取预设的EXCEL模板,添加至预设的字典文件夹中;
生成单元20,用于接收输入指令,根据所述输入指令在所述字典文件夹中的EXCEL模板中输入需求表详细信息,生成表字典;其中,所述需求表详细信息为需要生成的数据库表的属性信息;
第一执行单元30,用于根据接收的启动建表指令,读取所述表字典,并执行预设的建表处理逻辑,生成sql建表脚本;
第二执行单元40,用于执行所述sql建表脚本,并在预设的数据库中生成对应的数据库表。
在一实施例中,上述自动建表的装置,还包括:
验证单元,具体用于:
验证是否具有建表权限;
若具有建表权限,则通过第二执行单元40执行所述sql建表脚本,并在预设的数据库中生成对应的数据库表;
若不具有建表权限,则将所述sql脚本发送至数据库管理终端,以对所述sql脚本进行扫描以及校验;扫描以及校验通过之后,则通过所述数据库管理终端执行所述sql建表脚本,并在预设的数据库中生成对应的数据库表。
在一实施例中,所述验证单元对所述sql脚本进行扫描以及校验,包括:
扫描所述sql脚本,得到各个sql语句是否合规的结果;
按照预设的校验规则,依次对所述sql语句进行校验;所述校验规则包括长度校验规则、列类型校验规则、默认生成规则和优化建议规则中的一种或多种。
在一实施例中,上述自动建表的装置,还包括:
检测单元,用于若获取到所述数据库返回的执行结果中提示在所述数据库中未生成所述数据库表,则检测所述表字典中是否存在不满足预设规则的需求表详细信息;其中,所述预设规则为所述需求表详细信息需要满足的条件规则;
修改单元,用于若存在,则按照所述预设规则,对不满足预设规则的需求表详细信息进行修改,并通过第一执行单元30重新接收用户的启动建表指令,读取所述表字典,并执行预设的建表处理逻辑,生成sql建表脚本。
在一实施例中,上述自动建表的装置,还包括:
第二获取单元,用于获取终端的信息;所述终端为在预设的数据库中生成所述数据库表的终端;
第一编码单元,用于对所述终端的信息进行编码,得到第一指定位数的第一字符串;
第一哈希单元,用于对生成的所述数据库表中的内容进行哈希计算,得到对应的哈希值;
第二编码单元,用于将所述哈希值进行编码,得到第二指定位数的第二字符串;
第一拼接单元,用于将所述第二字符串与所述第一字符串进行拼接,得到拼接字符串,并将所述拼接字符串命名为所述数据库表的名称。
在一实施例中,上述自动建表的装置,还包括:
第二哈希单元,用于在所述数据库表中的内容更新时,对更新后的所述数据库表中的内容进行哈希计算,得到对应的更新哈希值;
第三编码单元,用于将所述更新哈希值进行编码,得到第二指定位数的第三字符串;
第二拼接单元,用于将所述第三字符串与所述第一字符串进行拼接,得到更新拼接字符串,并将所述更新拼接字符串更新为所述数据库表的新名称;
第三获取单元,用于获取更新所述数据库表名称的更新时间;
建立单元,用于在数据库中建立所述更新时间与所述新名称的对应关系。
在一实施例中,上述自动建表的装置,还包括:
第四获取单元,用于获取终端的信息;所述终端为在预设的数据库中生成所述数据库表的终端;
第三哈希单元,用于对所述终端的信息进行哈希计算,得到终端哈希值;
发送单元,用于将所述终端哈希值发送至数据库管理终端;其中,所述数据库管理终端接收到所述终端哈希值时,随机选择一种预设加密算法,并建立所述预设加密算法与所述终端哈希值的关联关系;
加密单元,用于接收所述数据库管理终端反馈的所述预设加密算法,并基于所述预设加密算法对所述数据库表进行加密。
在本实施例中,上述装置实施例中的各个单元的具体实现,请参照上述方法实施例中所述,在此不再进行赘述。
参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据库表等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种自动建表的方法。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种自动建表的方法。可以理解的是,本实施例中的计算机可读存储介质可以是易失性可读存储介质,也可以为非易失性可读存储介质。
综上所述,为本申请实施例中提供的自动建表的方法、装置、计算机设备和存储介质,包括:获取预设的EXCEL模板,添加至预设的字典文件夹中;在所述字典文件夹中的EXCEL模板中输入需求表详细信息,生成表字典;读取所述表字典,并执行预设的建表处理逻辑,生成sql建表脚本;执行所述sql建表脚本,并在预设的数据库中生成对应的数据库表。本申请自动生成sql建表脚本,及自动生成对应的数据库表,无需开发人员编写建表脚本,降低出错率以及人工成本,提升建表效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM通过多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (10)

1.一种自动建表的方法,其特征在于,包括以下步骤:
获取预设的EXCEL模板,添加至预设的字典文件夹中;
接收输入指令,根据所述输入指令在所述字典文件夹中的EXCEL模板中输入需求表详细信息,生成表字典;其中,所述需求表详细信息为需要生成的数据库表的属性信息;
根据接收的启动建表指令,读取所述表字典,并执行预设的建表处理逻辑,生成sql建表脚本;
执行所述sql建表脚本,并在预设的数据库中生成对应的数据库表。
2.根据权利要求1所述的自动建表的方法,其特征在于,所述根据接收的启动建表指令,读取所述表字典,并执行预设的建表处理逻辑,生成sql建表脚本的步骤之后,还包括:
验证是否具有建表权限;
若具有建表权限,则进入执行所述sql建表脚本,并在预设的数据库中生成对应的数据库表的步骤;
若不具有建表权限,则将所述sql脚本发送至数据库管理终端,以对所述sql脚本进行扫描以及校验;扫描以及校验通过之后,则通过所述数据库管理终端执行所述sql建表脚本,并在预设的数据库中生成对应的数据库表。
3.根据权利要求2所述的自动建表的方法,其特征在于,所述对所述sql脚本进行扫描以及校验的步骤,包括:
扫描所述sql脚本,得到各个sql语句是否合规的结果;
按照预设的校验规则,依次对所述sql语句进行校验;所述校验规则包括长度校验规则、列类型校验规则、默认生成规则和优化建议规则中的一个或多个。
4.根据权利要求1所述的自动建表的方法,其特征在于,所述执行所述sql建表脚本,并在预设的数据库中生成对应的数据库表的步骤之后,包括:
若获取到所述数据库返回的执行结果中提示在所述数据库中未生成所述数据库表,则检测所述表字典中是否存在不满足预设规则的需求表详细信息;其中,所述预设规则为所述需求表详细信息需要满足的条件规则;
若存在,则按照所述预设规则,对不满足预设规则的需求表详细信息进行修改,并重新进入所述接收用户的启动建表指令,读取所述表字典,并执行预设的建表处理逻辑,生成sql建表脚本的步骤。
5.根据权利要求1所述的自动建表的方法,其特征在于,所述执行所述sql建表脚本,并在预设的数据库中生成对应的数据库表的步骤之后,包括:
获取终端的信息;所述终端为在预设的数据库中生成所述数据库表的终端;
对所述终端的信息进行编码,得到第一指定位数的第一字符串;
对生成的所述数据库表中的内容进行哈希计算,得到对应的哈希值;
将所述哈希值进行编码,得到第二指定位数的第二字符串;
将所述第二字符串与所述第一字符串进行拼接,得到拼接字符串,并将所述拼接字符串命名为所述数据库表的名称。
6.根据权利要求5所述的自动建表的方法,其特征在于,所述将所述第二字符串与所述第一字符串进行拼接,得到拼接字符串,并将所述拼接字符串命名为所述数据库表的名称的步骤之后,还包括:
在所述数据库表中的内容更新时,对更新后的所述数据库表中的内容进行哈希计算,得到对应的更新哈希值;
将所述更新哈希值进行编码,得到第二指定位数的第三字符串;
将所述第三字符串与所述第一字符串进行拼接,得到更新拼接字符串,并将所述更新拼接字符串更新为所述数据库表的新名称;
获取更新所述数据库表名称的更新时间;
在数据库中建立所述更新时间与所述新名称的对应关系。
7.根据权利要求1所述的自动建表的方法,其特征在于,所述执行所述sql建表脚本,并在预设的数据库中生成对应的数据库表的步骤之后,包括:
获取终端的信息;所述终端为在预设的数据库中生成所述数据库表的终端;
对所述终端的信息进行哈希计算,得到终端哈希值;
将所述终端哈希值发送至数据库管理终端;其中,所述数据库管理终端接收到所述终端哈希值时,随机选择一种预设加密算法,并建立所述预设加密算法与所述终端哈希值的关联关系;
接收所述数据库管理终端反馈的所述预设加密算法,并基于所述预设加密算法对所述数据库表进行加密。
8.一种自动建表的装置,其特征在于,包括:
第一获取单元,用于获取预设的EXCEL模板,添加至预设的字典文件夹中;
生成单元,用于接收输入指令,根据所述输入指令在所述字典文件夹中的EXCEL模板中输入需求表详细信息,生成表字典;其中,所述需求表详细信息为需要生成的数据库表的属性信息;
第一执行单元,用于根据接收的启动建表指令,读取所述表字典,并执行预设的建表处理逻辑,生成sql建表脚本;
第二执行单元,用于执行所述sql建表脚本,并在预设的数据库中生成对应的数据库表。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN202011528614.9A 2020-12-22 2020-12-22 自动建表的方法、装置、计算机设备和存储介质 Pending CN112632946A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011528614.9A CN112632946A (zh) 2020-12-22 2020-12-22 自动建表的方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011528614.9A CN112632946A (zh) 2020-12-22 2020-12-22 自动建表的方法、装置、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN112632946A true CN112632946A (zh) 2021-04-09

Family

ID=75320906

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011528614.9A Pending CN112632946A (zh) 2020-12-22 2020-12-22 自动建表的方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN112632946A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113076320A (zh) * 2021-04-20 2021-07-06 北京沃东天骏信息技术有限公司 配置数据表的方法、装置、设备和计算机可读介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113076320A (zh) * 2021-04-20 2021-07-06 北京沃东天骏信息技术有限公司 配置数据表的方法、装置、设备和计算机可读介质

Similar Documents

Publication Publication Date Title
CN110297813B (zh) 数据迁移方法、装置、计算机设备及存储介质
CN109474578B (zh) 报文消息校验方法、装置、计算机设备和存储介质
CN112965982B (zh) 表格处理方法、装置、设备及存储介质
CN110457628B (zh) 网页版本校验方法、装置、设备及存储介质
CN116484437B (zh) 资产信息管理方法、装置以及计算机设备
CN110839014B (zh) 一种认证方法、装置、计算机设备及可读存储介质
CN112860778B (zh) 桌面应用程序的数据库管理方法、装置、设备和介质
CN110866258A (zh) 快速定位漏洞方法、电子装置及存储介质
CN110781070A (zh) 大数据测试验证方法、装置、计算机设备及存储介质
CN112817935A (zh) 基于字段类型的数据处理方法、装置、设备及存储介质
CN110704298A (zh) 一种代码验证的方法、装置、终端设备及存储介质
CN111290998A (zh) 迁移数据的校对方法、装置、设备及存储介质
CN112559526A (zh) 数据表导出方法、装置、计算机设备及存储介质
CN107819748B (zh) 一种抗破解的验证码实现方法及装置
CN112528201A (zh) 调用第三方平台的方法、装置、计算机设备和存储介质
CN111709026A (zh) 静态安全检测方法、装置、计算机设备和存储介质
CN112632946A (zh) 自动建表的方法、装置、计算机设备和存储介质
CN113709181A (zh) 基于浏览器插件的网站登录方法、装置、设备及存储介质
CN113177407A (zh) 数据字典的构建方法、装置、计算机设备及存储介质
CN112380239A (zh) 脚本生成方法、装置、设备及存储介质
CN111176882A (zh) 特定数据处理方法、装置、计算机设备及存储介质
CN110688823A (zh) Xml文件验证方法及装置
CN111143399B (zh) 数据处理方法、装置、存储介质和计算机设备
CN114238273A (zh) 数据库管理方法、装置、设备及存储介质
CN112667273A (zh) 页面按钮的权限管理方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination