[发明专利]一种在线修改数据库表结构的方法在审
申请号: | 201810701116.6 | 申请日: | 2018-06-29 |
公开(公告)号: | CN109189778A | 公开(公告)日: | 2019-01-11 |
发明(设计)人: | 郭安俊 | 申请(专利权)人: | 武汉掌游科技有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/23;G06F16/27 |
代理公司: | 北京慕达星云知识产权代理事务所(特殊普通合伙) 11465 | 代理人: | 李冉 |
地址: | 430000 湖北省武汉市*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 新表 在线修改 主库 数据库表结构 表结构 触发器 子表 删除 关联 拷贝数据 库服务器 数据阻塞 同步更新 自动修改 目标表 日志 映射 创建 检查 | ||
1.一种在线修改数据库表结构的方法,主库中包括源数据表,其特征在于:包括如下步骤:
步骤1,检查所述源数据表是否存在外键,若不存在外键则终止执行,若存在外键则进入步骤2;
步骤2,根据主库的源数据表在所述主库创建一个新表,所述新表具有和所述源数据表相同的表结构,对所述新表按照目标表结构进行修改;
步骤3,在所述主库创建触发器,用于将所述源数据表中的操作映射到所述新表;
步骤4,开启binlog日志,按照新表自动修改从库的表结构;
步骤5,从所述源数据表中拷贝数据到所述新表;
步骤6,根据修改后的所述新表,修改与外键相关联的子表;
步骤7,重命名所述新表,并删除所述源数据表;
步骤8,删除所述触发器。
2.根据权利要求1所述的一种在线修改数据库表结构的方法,其特征在于,所述触发器记录从所述源数据表向所述新表拷贝数据过程中对源数据表进行数据修改的操作,并且在数据拷贝结束后,在所述新表执行所述操作。
3.根据权利要求1所述的一种在线修改数据库表结构的方法,其特征在于,所述步骤3中在所述主库创建三个触发器,分别是INSERT触发器、UPDATE触发器和DELETE触发器。
4.根据权利要求1所述的一种在线修改数据库表结构的方法,其特征在于,所述步骤4中,采用行模式记录binlog日志,具体方法为:
所述主库更新数据后,接收binlog日志数据并写入本地日志;
读取本地日志,检查源数据表是否存在主键或唯一索引,若存在主键或唯一索引,则用主键或唯一索引匹配binlog日志数据;若不存在主键或唯一索引,则全表扫描匹配binlog日志数据;
更新所述从库的表结构。
5.根据权利要求1所述的一种在线修改数据库表结构的方法,其特征在于,所述步骤6中,修改与外键相关联的子表的方法包括以下两种:
(1)重建外键参考的子表,并指向所述新表,相应的步骤7为交换所述源数据表和所述新表的表名,然后删除所述源数据表;
(2)禁用子表外键约束检查,相应的步骤7为先删除所述源数据表,在对所述新表重命名。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉掌游科技有限公司,未经武汉掌游科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810701116.6/1.html,转载请声明来源钻瓜专利网。