[发明专利]变更表格式的方法、装置、电子设备和可读存储介质有效
申请号: | 201711421574.6 | 申请日: | 2017-12-25 |
公开(公告)号: | CN108573015B | 公开(公告)日: | 2021-02-05 |
发明(设计)人: | 纪翔 | 申请(专利权)人: | 北京金山云网络技术有限公司;北京金山云科技有限公司;北京金迅瑞博网络技术有限公司 |
主分类号: | G06F16/23 | 分类号: | G06F16/23;G06F16/22 |
代理公司: | 北京柏杉松知识产权代理事务所(普通合伙) 11413 | 代理人: | 马敬;项京 |
地址: | 100085 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 变更 表格 方法 装置 电子设备 可读 存储 介质 | ||
本发明实施例提供了一种变更表格式的方法、装置、电子设备和可读存储介质,方法包括:创建一张原表格式的修改记录表,以及一张对原表进行表格式变更后的临时表;在插入有修改触发器对应的原表中的数据被修改,并触发修改触发器后,在修改记录表中记录原表的修改信息;将修改后的原表中的所有数据写入临时表;根据修改记录表中记录的修改信息,对临时表中的数据进行第一修改操作;使用修改后的临时表置换修改后的原表,并删除修改后的原表。应用本发明实施例能够实现在变更表格式的过程中,不锁定原表,以避免影响其他业务的正常运行。
技术领域
本发明涉及数据库技术领域,特别是涉及变更表格式的方法、装置、电子设备和可读存储介质。
背景技术
目前,在需要对数据库进行表格式变更时,应用较为广泛的方法是pt-online-schema-change方法,具体的处理过程如下:
第一步,按照用户所需的新表格式,创建一张临时表;
第二步,向待变更表格式的原表中,插入修改触发器,修改触发器可以包括插入(insert)触发器、更改(update)触发器和删除(delete)触发器;
第三步,当用户对原表中的数据进行变更操作时,通过触发修改触发器直接向临时表修改数据;比如,用户对原表进行update操作,通过触发update触发器直接对临时表进行update操作,此时原表被锁定,导致除该用户以外的其他业务进程无法再对原表进行操作;
第四步,将修改后的原表的所有数据写入到修改后的临时表中;
第五步,使用修改后的临时表置换修改后的原表;具体的,先将原表的表名修改为区分于原表名,且与原表名不同的随机名,将临时表的表名改为原表的表名,再解锁定原表;
第六步,删除原表。
但是,由于在第三步中,通过触发变更触发器直接向临时表修改数据可能会触发锁定原表,导致用户在对数据库中的原表进行表格式变更时,其他业务进程无法对原表进行操作,在锁定时间较长的情况下会影响其他业务的正常使用。
发明内容
本发明实施例的目的在于提供一种变更表格式的方法、装置、电子设备和可读存储介质,以实现在变更表格式的过程中,不锁定原表,以避免影响其他业务的正常运行。具体技术方案如下:
本发明实施例提供一种变更表格式的方法,方法包括:
创建一张原表格式的修改记录表,以及一张对原表进行表格式变更后的临时表;
在插入有修改触发器对应的原表中的数据被修改,并触发修改触发器后,在修改记录表中记录原表的修改信息;
将修改后的原表中的所有数据写入临时表;
根据修改记录表中记录的修改信息,对临时表中的数据进行第一修改操作;
使用修改后的临时表置换修改后的原表,并删除修改后的原表。
可选的,修改记录表包括用于记录插入信息、更改信息和删除信息的字段;
在修改记录表中记录原表的修改信息的步骤,包括:
修改触发器在修改记录表中对应的字段中,插入原表中修改后的数据和修改后的数据对应的修改类型,修改类型包括插入、更改和删除;
根据修改记录表中记录的修改信息,对临时表中的数据进行第一修改操作的步骤,包括:
根据修改记录表中记录的修改后的数据和修改后的数据对应的修改类型,对临时表中的数据进行相应的修改操作。
可选的,在使用修改后的临时表置换修改后的原表的步骤之前,方法还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京金山云网络技术有限公司;北京金山云科技有限公司;北京金迅瑞博网络技术有限公司,未经北京金山云网络技术有限公司;北京金山云科技有限公司;北京金迅瑞博网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711421574.6/2.html,转载请声明来源钻瓜专利网。