mysql数据库合库数据库合并心得

mysql数据库合库数据库合并心得
在这里插入图片描述

要区分表的主键类型和有无外键

1、自增主键+ 外键相关表
2、uuid + 外键相关表
3、没有外键的自增表
4、没有外键的uuid表
5、没有外键的自增表无数据
6、没有外键的uuid表无数据
7、字典表

自增主键+ 外键相关表=增加偏移量自增主键,偏移量为基准表的最大id select max(id),换库读取的时候要重置偏移量,重新读取max(id)

数据合并原则:自增主键+偏移量合并,uuid直接合并,重复的uuid生成新值,自增主键记录下暂不插入
数据合并方法:选定某个数据库为主库,依据表主键类型分为四大类,读取其他库的表数据,按照表主键类型插入到新表中

新增四个方法:
读取自增主键+外键,
读取uuid主键+外键,
读取自增主键无外键,
读取非自增主键无外键
可以用方法去自动读取,代码读取各个库的数据,合并到主库的数据,如有重复记录下,并生成新的uuid
新增一个合并表数据的记录日志,记录合并异常的数据

表结构 tb_merge_database_record
CREATE TABLE tb_merge_database_record (
tb_id varchar(36) NOT NULL COMMENT ‘id’,
data_text varchar(50) DEFAULT NULL COMMENT ‘数据库名’,
table_text varchar(50) DEFAULT NULL COMMENT ‘表名名’,
filed_text varchar(50) DEFAULT NULL COMMENT ‘字段名’,
filed_value varchar(50) DEFAULT NULL COMMENT ‘字段值’,
fault_reason varchar(256) DEFAULT NULL COMMENT ‘失败原因’,
update_at datetime(3) DEFAULT CURRENT_TIMESTAMP(3) COMMENT ‘最后修改时间’,
update_at datetime(3) DEFAULT CURRENT_TIMESTAMP(3) COMMENT ‘最后修改时间’,
PRIMARY KEY (tb_id) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT=‘合并数据库错误记录表’;

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值