MySQL数据迁移--思路

文章讲述了如何处理两个不同数据库中的表(A表和B表)数据合并的问题。通过导出SQL文件,在本地数据库中使用联表查询找出需要更新和插入的数据,然后利用SQL的字符串拼接生成动态SQL语句,以便在生产环境中执行,实现A表的更新和新数据的插入。

背景:不知道原来有一个A表是专门存储备注信息的,新建了B表,导致同一个存储功能的表分在了两个数据库,表名和字段名不一样。为了后续方便,现在想把B表的数据合并在A表中。因为有一些数据是在A表中已经存在了的,所以A表存在了的就要更新,不存在的就要插入。

思路:把生产上两个不同的表结构和数据导出 .sql 文件,放在本地同一个数据库中,使用联表SQL把需要更新和插入的数据统计出来,并用SQL的字符串拼接语法拼接好SQL,后续只需要在生产执行拼接好的SQL即可。

以下是代码展示

-- 插入的SQL
SELECT CONCAT('INSERT INTO app_manager_rcmder_remark (rcmder_id, manager_id,remark_name,active_status,`create_time`,`last_update_time`) VALUES (''', recomender_no, ''', ''', user_id, ''', ''', remark_name, ''', ''', 1, ''',now(),now());')
from bms_app_remarks_name

-- 更新的SQL
SELECT CONCAT('UPDATE `app_manager_rcmder_remark` SET `remark_name` = ''', remark_name, ''' WHERE `manager_id` = ''', user_id, ''' AND `rcmder_id` = ''', recomender_no, ''';')
FROM bms_app_remarks_name

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值