一种数据库的数据修改方法、装置及存储介质制造方法及图纸

技术编号:28373567 阅读:7 留言:0更新日期:2021-05-08 00:00
本发明专利技术涉及一种数据库的数据修改方法、装置及存储介质,方法包括以下步骤:获取用于数据修改的第一SQL语句;提取第一SQL语句的关键信息,生成影响查询语句、新旧值变化语句和备份语句;执行影响查询语句,得到被第一SQL语句的执行所影响的数据;执行新旧值变化语句,返回执行第一SQL语句前后待修改数据的旧值和新值;如果用户确认执行,则执行备份语句、生成恢复语句并存储恢复语句,执行第一SQL语句。与现有技术相比,本发明专利技术对输入的第一SQL语句进行分析,自动生成影响查询语句、新旧值变化语句和备份语句,避免了手工编写SQL语句,能够在第一SQL语句执行前向用户展示执行前后的数据变化、修改是否存在风险,降低了错改的风险。

【技术实现步骤摘要】
一种数据库的数据修改方法、装置及存储介质
本专利技术涉及数据处理领域,尤其是涉及一种数据库的数据修改方法、装置及存储介质。
技术介绍
随着信息技术的进步,数据库的应用越来越广泛。在数据库的使用过程中,由于程序BUG、历史数据、生产运维等,不可避免的产生了数据修改需求。当有大量数据需要修改时,运维人员需要手动编写数据修改语句和备份语句,效率较低,而且,由于运维人员水平不一致,手动编写语句容易出错,导致出现大量正常数据被误修改、问题数据被错改或漏改、备份语句备份的数据和修改语句修改的数据不一致等问题,无法保证数据库的数据修改的安全性。中国专利CN201811114708.4公开了一种基于SQL语句的数据修改方法,通过预设分析规则分析用户输入的SQL语句,自动生成用于创建备份数据的SQL语句,不需要用户单独编写备份语句,使得用户修改的数据得到备份,可以在一定程度上降低数据被误改造成的损失。但是,该方法只能根据用户输入的SQL语句生成对应的备份语句,虽然减少了用户编写备份语句的工作量,但并没有解决数据被误改、漏改、错改的问题,而且想恢复被修改的数据还需要重新编写SQL语句,将备份数据导回原数据库,不利于数据的恢复。
技术实现思路
本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种数据库的数据修改方法、装置及存储介质,对输入的第一SQL语句进行分析,自动生成影响查询语句、新旧值变化语句和备份语句,避免了手工编写SQL语句,能够在第一SQL语句执行前向用户展示修改是否存在风险、执行前后的数据变化,降低了错改的风险。本专利技术的目的可以通过以下技术方案来实现:一种数据库的数据修改方法,包括以下步骤:S1:获取用于数据修改的第一SQL语句;S2:对第一SQL语句进行语法校验,如果语法校验通过,则执行步骤S3,否则,提示语法校验未通过,执行步骤S1;S3:分析第一SQL语句,提取第一SQL语句的关键信息,所述关键信息包括:语句类型、表名、待修改字段、修改条件和目标数据;S4:基于所述关键信息生成影响查询语句、新旧值变化语句和备份语句;S5:执行影响查询语句,得到被第一SQL语句的执行所影响的数据;S6:执行新旧值变化语句,返回执行第一SQL语句前待修改数据的旧值和执行第一SQL语句后待修改数据的新值,所述待修改数据为待修改字段中符合修改条件的数据;S7:获取用户的反馈信号,如果反馈信号为是,则执行备份语句、生成恢复语句并存储恢复语句,执行步骤S8;如果反馈信号为否,则执行步骤S1;S8:执行第一SQL语句,将待修改数据修改为目标数据。进一步的,所述步骤S1具体为:用户根据数据修改的需求编写第一SQL语句。进一步的,所述步骤S1具体为:F1:用户根据数据修改的需求自规则库中选择规则,所述规则库中预先存储有多条适用于不同的数据修改需求的规则;F2:用户填写所选择的规则的参数;F3:对参数进行类型、长度和内容的安全校验,如果安全校验通过,则执行步骤F4,否则,提示安全校验未通过,执行步骤F2;F4:根据用户所选择的规则和用户填写的参数生成第一SQL语句。更进一步的,所述步骤F1中,规则库中预先存储的规则是用户预先根据不同的数据修改需求设置的,具体为:D1:获取数据修改需求;D2:用户编写对应该数据修改需求的规则SQL语句,所述规则SQL语句包括一个或多个变量;D3:对规则SQL语句进行语法校验,如果语法校验通过,则执行步骤D4,否则,提示语法校验未通过,执行步骤D3;D4:根据规则SQL语句与变量之间的依赖关系,设置规则SQL语句中的变量的名称、变量的类型、变量的长度、变量的默认值、变量的选填属性,得到一条规则并将其存储在规则库中;D5:重复步骤D1,直至规则库中存储有所有数据修改需求的规则。进一步的,所述步骤S3具体为:对第一SQL语句进行划分,提取类型关键字,得到第一SQL语句的类型;根据第一SQL语句的类型,提取第一SQL语句中的表名关键词、待修改字段关键词、修改条件关键词和目标数据关键词,得到第一SQL语句的表名、第一SQL语句的待修改字段、第一SQL语句的修改条件和第一SQL语句的目标数据。进一步的,所述步骤S7中,所述恢复语句用于将待修改数据的值恢复为执行第一SQL语句前待修改数据的旧值;执行备份语句、生成恢复语句并存储恢复语句具体为:执行备份语句,得到所有待修改数据,并将待修改数据的旧值备份,得到备份数据;生成所有待修改数据的恢复语句并将恢复语句保存在恢复文件中。更进一步的,所述步骤S7中,执行备份语句、生成恢复语句并存储恢复语句后,还包括:基于备份数据和恢复文件,生成用于对备份数据和恢复文件进行归档的归档SQL语句;执行归档SQL语句。更进一步的,还包括步骤S9,步骤S9具体为:检查数据库中的数据集,如果发现数据修改错误,则执行恢复文件中与该错误所对应的恢复语句。一种数据库的数据修改装置,基于如上所述的数据修改方法,包括用户输入模块、规则定义模块、规则执行模块、语法校验模块、语句分析模块、备份模块、新旧值预览模块和语句执行模块:所述用户输入模块用于获取用户输入的第一SQL语句、用户输入的规则和规则的参数;所述规则定义模块用于根据数据修改需求设置规则并存储在规则库中;所述规则执行模块用于根据用户输入的规则和规则的参数生成第一SQL语句;所述语法校验模块用于校验第一SQL语句是否符合语法规范;所述语句分析模块用于分析第一SQL语句,提取第一SQL语句的关键信息,并基于所述关键信息生成影响查询语句、新旧值变化语句和备份语句;所述备份模块用于执行备份语句、生成恢复语句和存储恢复语句;所述新旧值预览模块用于执行新旧值变化语句,返回给用户执行第一SQL语句前待修改数据的旧值和执行第一SQL语句后待修改数据的新值;所述语句执行模块用于执行第一SQL语句,将待修改数据修改为目标数据。一种计算机可读存储介质,所述计算机可读存储介质中包括数据修改程序,所述数据修改程序被处理器执行时,可实现如上所述的数据修改方法的步骤。与现有技术相比,本专利技术具有以下有益效果:(1)对输入的第一SQL语句进行分析,自动生成影响查询语句、新旧值变化语句和备份语句,避免了手工编写SQL语句,能够在第一SQL语句执行前向用户展示修改是否存在风险、执行前后的数据变化,降低了错改的风险。(2)在执行第一SQL语句前,执行备份语句并自动生成恢复语句,便于错改数据后对数据进行恢复,减少了操作人员的工作量,自动化程度更高。(3)预先根据数据修改需求设置规则,用户可以直接选取规则、输入参数,直接生成第一SQL语句,不需要手动编写SQL语句,提升了SQL语句的质量,降低了数据修改的风险。附图说明图1为数据修改方法的流程图;...

【技术保护点】
1.一种数据库的数据修改方法,其特征在于,包括以下步骤:/nS1:获取用于数据修改的第一SQL语句;/nS2:对第一SQL语句进行语法校验,如果语法校验通过,则执行步骤S3,否则,提示语法校验未通过,执行步骤S1;/nS3:分析第一SQL语句,提取第一SQL语句的关键信息,所述关键信息包括:语句类型、表名、待修改字段、修改条件和目标数据;/nS4:基于所述关键信息生成影响查询语句、新旧值变化语句和备份语句;/nS5:执行影响查询语句,得到被第一SQL语句的执行所影响的数据;/nS6:执行新旧值变化语句,返回执行第一SQL语句前待修改数据的旧值和执行第一SQL语句后待修改数据的新值,所述待修改数据为待修改字段中符合修改条件的数据;/nS7:获取用户的反馈信号,如果反馈信号为是,则执行备份语句、生成恢复语句并存储恢复语句,执行步骤S8;如果反馈信号为否,则执行步骤S1;/nS8:执行第一SQL语句,将待修改数据修改为目标数据。/n

【技术特征摘要】
1.一种数据库的数据修改方法,其特征在于,包括以下步骤:
S1:获取用于数据修改的第一SQL语句;
S2:对第一SQL语句进行语法校验,如果语法校验通过,则执行步骤S3,否则,提示语法校验未通过,执行步骤S1;
S3:分析第一SQL语句,提取第一SQL语句的关键信息,所述关键信息包括:语句类型、表名、待修改字段、修改条件和目标数据;
S4:基于所述关键信息生成影响查询语句、新旧值变化语句和备份语句;
S5:执行影响查询语句,得到被第一SQL语句的执行所影响的数据;
S6:执行新旧值变化语句,返回执行第一SQL语句前待修改数据的旧值和执行第一SQL语句后待修改数据的新值,所述待修改数据为待修改字段中符合修改条件的数据;
S7:获取用户的反馈信号,如果反馈信号为是,则执行备份语句、生成恢复语句并存储恢复语句,执行步骤S8;如果反馈信号为否,则执行步骤S1;
S8:执行第一SQL语句,将待修改数据修改为目标数据。


2.根据权利要求1所述的一种数据库的数据修改方法,其特征在于,所述步骤S1具体为:用户根据数据修改的需求编写第一SQL语句。


3.根据权利要求1所述的一种数据库的数据修改方法,其特征在于,所述步骤S1具体为:
F1:用户根据数据修改的需求自规则库中选择规则,所述规则库中预先存储有多条适用于不同的数据修改需求的规则;
F2:用户填写所选择的规则的参数;
F3:对参数进行类型、长度和内容的安全校验,如果安全校验通过,则执行步骤F4,否则,提示安全校验未通过,执行步骤F2;
F4:根据用户所选择的规则和用户填写的参数生成第一SQL语句。


4.根据权利要求3所述的一种数据库的数据修改方法,其特征在于,所述步骤F1中,规则库中预先存储的规则是用户预先根据不同的数据修改需求设置的,具体为:
D1:获取数据修改需求;
D2:用户编写对应该数据修改需求的规则SQL语句,所述规则SQL语句包括一个或多个变量;
D3:对规则SQL语句进行语法校验,如果语法校验通过,则执行步骤D4,否则,提示语法校验未通过,执行步骤D3;
D4:根据规则SQL语句与变量之间的依赖关系,设置规则SQL语句中的变量的名称、变量的类型、变量的长度、变量的默认值、变量的选填属性,得到一条规则并将其存储在规则库中;
D5:重复步骤D1,直至规则库中存储有所有数据修改需求的规则。


5.根据权利要求1所述的一种数据库的数据修改方法,其特征在于,所述步骤S3具体为:
...

【专利技术属性】
技术研发人员:王程皓
申请(专利权)人:中国人寿保险股份有限公司上海数据中心
类型:发明
国别省市:上海;31

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

1