CN107818178A - 一种自动生成数据库变更sql脚本的方法 - Google Patents
一种自动生成数据库变更sql脚本的方法 Download PDFInfo
- Publication number
- CN107818178A CN107818178A CN201711182779.3A CN201711182779A CN107818178A CN 107818178 A CN107818178 A CN 107818178A CN 201711182779 A CN201711182779 A CN 201711182779A CN 107818178 A CN107818178 A CN 107818178A
- Authority
- CN
- China
- Prior art keywords
- sql
- automatically generated
- reversely
- change
- data storehouse
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请发明一种自动生成数据库变更SQL脚本的方法,该方法为基准数据表添加时间戳字段;基准数据变更时,同步更新相关时间戳信息;基于给定时间段反向生成SQL脚本工具,因此可以在研发环境涉及基准表数据变更时,不再需要同步整理SQL脚本,而是自动生成给定时间段内的变更SQL脚本,大大提升了升级工作效率,同时避免了人工操作可能引起的误操作。
Description
技术领域
本发明涉及计算机软件领域,具体涉及一种自动生成数据库变更SQL脚本的方法。
背景技术
结构化查询语言(Structured Query Language),简称SQL,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库***。基准数据库,也叫基准库,研发环境所有的数据变更都作用在基准数据库上,如新建菜单,修改角色的权限信息等,项目现场升级时,会从基准库导出变更数据的SQL脚本。基准表是基准库里面的数据表。
在软件领域,软件产品经常处于不断的更新迭代中,新的版本发布后,如果需要升级到项目上的生产环境,需要做大量的升级工作,包括程序代码的增量升级、数据库数据表的增量升级等等,同时还要考虑兼容性问题。
在数据表数据升级这部分,目前的实现手段一般是通过整理SQL脚本,然后去现场生产环境执行的方式来升级,但这种升级方式要求在基准研发环境下,每次涉及基准表数据的变更,都要同步整理SQL脚本,费时费力,人工进行这种操作还容易出错。
基于上述问题,本发明实现了一种自动生成数据库变更SQL脚本的方法,该方法可以在研发环境涉及基准表数据变更时,不再需要同步整理SQL脚本;现场生产环境升级时,使用本发明所述的方法即可自动生成给定时间段内的变更SQL脚本,大大提升了升级工作效率,同时避免了人工操作可能引起的误操作。
发明内容
本发明分为三个步骤,第一步骤,为基准数据表添加时间戳字段;第二步骤,基准数据变更时,同步更新相关时间戳信息;第三步骤,基于给定时间段反向生成SQL脚本工具。
具体地,本申请请求保护一种自动生成数据库变更SQL脚本的方法,其特征在于,该方法具体包括如下步骤:
第一步骤,为基准数据表添加时间戳字段;
第二步骤,基准数据变更时,同步更新相关时间戳信息;
第三步骤,基于给定时间段反向生成SQL脚本工具。
如上所述的自动生成数据库变更SQL脚本的方法,其特征还在于,基准数据表添加的时间戳字段包括新建时间戳、更新时间戳、删除时间戳、是否已删除状态。
如上所述的自动生成数据库变更SQL脚本的方法,其特征还在于,基于给定时间段反向生成SQL脚本工具进一步包括:遍历所有基准表,查找每个基准表在给定时间段内新增的数据记录,进一步查找每个基准表的元数据信息,反向生成新建记录的insert SQL语句。
如上所述的自动生成数据库变更SQL脚本的方法,其特征还在于,基于给定时间段反向生成SQL脚本工具进一步包括:遍历所有基准表,查找每个基准表在给定时间段内更新的数据记录,进一步查找每个基准表的元数据信息,反向生成更新记录的update SQL语句。
如上所述的自动生成数据库变更SQL脚本的方法,其特征还在于,基于给定时间段反向生成SQL脚本工具进一步包括:遍历所有基准表,查找每个基准表在给定时间段内删除的数据记录,进一步查找每个基准表的元数据信息,反向生成删除记录的delete SQL语句。
如上所述的自动生成数据库变更SQL脚本的方法,其特征还在于,每个基准表的元数据信息包括:字段名称、字段类型。
具体实施方式
本发明所述方法的具体实现步骤:
(一)为基准数据表添加时间戳字段
具体指令如下:
is_deleted char(1)是否已删除,0未删除;1已删除
deleted_at datet ime删除时间
created_at datet ime创建时间
updated_at datet ime修改时间
(二)基准数据变更时,同步更新相关时间戳信息
所有涉及数据库基准表的数据变更,都需要同步更新相应时间戳。例如:新建数据记录,设置创建时间;修改某条数据记录,更新修改时间;删除某条数据,设置删除时间,并将is_deleted值修改为1。
(三)、基于给定起止时间,反向生成SQL脚本工具。
1、遍历所有基准表,查找每个基准表在给定时间段内新增的数据记录。
具体指令如下:
Select*from基准表where created_at>=开始时间戳and created_at<=结束时间戳;
2、进一步查找每个基准表的元数据信息(字段名称、字段类型),反向生成insertSQL语句。
如:insert into基准表(字段1,字段2,字段3,…)values(值1,值2,值3,…)
3、遍历所有基准表,查找每个基准表在给定时间段内更新过的数据记录。
具体指令如下:
Select*from基准表where updated_at>=开始时间戳and updated_at<=结束时间戳;
4、进一步查找每个基准表的元数据信息(字段名称、字段类型、主键信息),反向生成update SQL语句。
例如:update基准表set字段1=值1,字段2=值2,字段3=值3,…where主键=主键值;
5、遍历所有基准表,查找每个基准表在给定时间段内删除的数据记录。
具体指令如下:
Select*from基准表where is_deleted='1'and deleted_at>=开始时间戳anddeleted_at<=结束时间戳;
6、进一步查找每个基准表的元数据信息(字段名称、字段类型、主键信息),反向生成delete SQL语句。
如:delete基准表set字段1=值1,字段2=值2,字段3=值3,…where主键=主键值;
显而易见地,上面所示的仅仅是本发明的一个具体实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据上述实施例获得其他的技术方案,以及在本发明保护的范围内做出的等同变化均应落入本发明的保护范围内,都属于本发明保护的范围。
综上所述,本发明只需要给定起止时间,即可以一键生成SQL变更脚本,提升了工作效率,减少了手工操作出错的机会,极大地提高了研发测试、生产效率。
Claims (6)
1.一种自动生成数据库变更SQL脚本的方法,其特征在于,该方法具体包括如下步骤:
第一步骤,为基准数据表添加时间戳字段;
第二步骤,基准数据变更时,同步更新相关时间戳信息;
第三步骤,基于给定时间段反向生成SQL脚本工具。
2.如权利要求1所述的自动生成数据库变更SQL脚本的方法,其特征还在于,基准数据表添加的时间戳字段包括新建时间戳、更新时间戳、删除时间戳、是否已删除状态。
3.如权利要求2所述的自动生成数据库变更SQL脚本的方法,其特征还在于,基于给定时间段反向生成SQL脚本工具进一步包括:遍历所有基准表,查找每个基准表在给定时间段内新增的数据记录,进一步查找每个基准表的元数据信息,反向生成新建记录的insertSQL语句。
4.如权利要求3所述的自动生成数据库变更SQL脚本的方法,其特征还在于,基于给定时间段反向生成SQL脚本工具进一步包括:遍历所有基准表,查找每个基准表在给定时间段内更新的数据记录,进一步查找每个基准表的元数据信息,反向生成更新记录的updateSQL语句。
5.如权利要求4所述的自动生成数据库变更SQL脚本的方法,其特征还在于,基于给定时间段反向生成SQL脚本工具进一步包括:遍历所有基准表,查找每个基准表在给定时间段内删除的数据记录,进一步查找每个基准表的元数据信息,反向生成删除记录的deleteSQL语句。
6.如权利要求5所述的自动生成数据库变更SQL脚本的方法,其特征还在于,每个基准表的元数据信息包括:字段名称、字段类型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711182779.3A CN107818178A (zh) | 2017-11-23 | 2017-11-23 | 一种自动生成数据库变更sql脚本的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711182779.3A CN107818178A (zh) | 2017-11-23 | 2017-11-23 | 一种自动生成数据库变更sql脚本的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107818178A true CN107818178A (zh) | 2018-03-20 |
Family
ID=61609953
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711182779.3A Pending CN107818178A (zh) | 2017-11-23 | 2017-11-23 | 一种自动生成数据库变更sql脚本的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107818178A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109522364A (zh) * | 2018-10-18 | 2019-03-26 | 恒峰信息技术有限公司 | 一种异地数据双向同步方法及*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101552701A (zh) * | 2008-04-03 | 2009-10-07 | 华为技术有限公司 | 一种记录参数维护变更的方法、***及装置 |
CN102662946A (zh) * | 2012-02-20 | 2012-09-12 | 北京地拓科技发展有限公司 | 一种自动监测数据库中记录变化的方法和*** |
CN104298769A (zh) * | 2014-10-29 | 2015-01-21 | 北京思特奇信息技术股份有限公司 | 一种数据库间共有域差异数据同步***及方法 |
-
2017
- 2017-11-23 CN CN201711182779.3A patent/CN107818178A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101552701A (zh) * | 2008-04-03 | 2009-10-07 | 华为技术有限公司 | 一种记录参数维护变更的方法、***及装置 |
CN102662946A (zh) * | 2012-02-20 | 2012-09-12 | 北京地拓科技发展有限公司 | 一种自动监测数据库中记录变化的方法和*** |
CN104298769A (zh) * | 2014-10-29 | 2015-01-21 | 北京思特奇信息技术股份有限公司 | 一种数据库间共有域差异数据同步***及方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109522364A (zh) * | 2018-10-18 | 2019-03-26 | 恒峰信息技术有限公司 | 一种异地数据双向同步方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103049251B (zh) | 一种数据库持久层装置及数据库操作方法 | |
CN104899295B (zh) | 一种异构数据源数据关联分析方法 | |
CN108153784A (zh) | 同步数据处理方法和装置 | |
CN104331285A (zh) | 一种代码自动生成方法及*** | |
CN102402559A (zh) | 一种数据库升级脚本的生成方法和装置 | |
CN105224377A (zh) | 一种通过元数据自动生成软件项目编码文件的方法及装置 | |
CN107679125A (zh) | 一种用于云计算的配置管理数据库*** | |
CN109508355A (zh) | 一种数据抽取方法、***及终端设备 | |
CN102646040B (zh) | 基于功件和功件树的软件生成方法及装置 | |
CN106649771A (zh) | 数据库的数据模型更新方法和*** | |
CN104657387A (zh) | 一种数据查询方法及装置 | |
CN106802905B (zh) | 一种同构plm***的协同数据交换方法 | |
CN102393860A (zh) | 数据库数据迁移*** | |
US20070083543A1 (en) | XML schema template builder | |
CN105183645A (zh) | 一种基于复用的雷达软件测试设计与实现的方法 | |
CN108595324A (zh) | 测试案例复用管理方法及*** | |
CN104978411A (zh) | 一种高速列车的车型开发方法和装置 | |
CN103646100A (zh) | 报表数据组织模型 | |
CN104317964A (zh) | 一种基于iBatis的对象关系映射方法及*** | |
CN105224527A (zh) | 适用于多种目的表更新方式的通用etl方法 | |
CN101923464A (zh) | Do-178b标准文档生成器 | |
CN106325833A (zh) | 一种用于企业信息管理的代码生成方法 | |
CN107818178A (zh) | 一种自动生成数据库变更sql脚本的方法 | |
CN103107919A (zh) | 一种网络资源建模方法和*** | |
CN104748757A (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200522 Address after: Building S01, Inspur Science Park, No. 1036, Inspur Road, high tech Zone, Jinan City, Shandong Province, 250000 Applicant after: Tidal Cloud Information Technology Co.,Ltd. Address before: 450000 Henan province Zheng Dong New District of Zhengzhou City Xinyi Road No. 278 16 floor room 1601 Applicant before: ZHENGZHOU YUNHAI INFORMATION TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180320 |
|
RJ01 | Rejection of invention patent application after publication |