MySql开发之自动同步表结构实现数据的同步

本文详细介绍了在开发过程中如何通过自动生成ALTER语句来解决因频繁修改数据库字段导致的不同环境间表结构不一致的问题。作者提供了一个程序,可以自动比较并同步两个数据库的表结构,包括新增表、索引结构的变更,同时提供了配置和运行指导,确保数据一致性。
摘要由CSDN通过智能技术生成

这篇文章主要给大家介绍了关于MySql开发之自动同步表结构的相关资料,这样可以避免在开发中由于修改数据库字段导致的数据库表不一致问题,需要的朋友可以参考下

开发痛点

在开发过程中,由于频繁的修改数据库的字段,导致rd和qa环境的数据库表经常不一致。
而由于这些修改数据库的操作可能由多个rd操作,很难一次性收集全。人手工去和qa环境对字段又特别繁琐,容易遗漏。

解决之道

于是笔者就写了一个能够自动比较两个数据库的表结构,并生成alter语句的程序。同时还可以进行配置从而自动这行这些alter语句。

原理

同步新增的表

如果rd环境新增的表,而qa环境没有,此程序可以直接输出create table语句。原理如下:在这里插入图片描述
用到的sql主要有:

show table from rd_db;
show create table added_table_name;

同步表结构

如果rd表结构有改动,而qa环境没有,此程序可以直接输出alter语句,原理如下:在这里插入图片描述

用到的sql有:

select
 COLUMN_NAME,COLUMN_TYPE,IS_NULLABLE,COLUMN_DEFAULT,COLUMN_COMMENT,EXTRA 
from
 information_schema.columns
where
  TABLE_SCHEMA='rd_db'
  and TABLE_NAME = 'rd_table';

比较表结构的代码:

for (Column column : sourceTable.getColumns().values()) {
   
    if (targetTable.getColumns().get(column.getName()) == null) {
   
        
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值