一.场景
将之前老项目的数据迁移到新项目中,涉及到表数据迁移,在此总结一下。
二.示例
有三张两两关联的表需要组合成一张表导入新项目的一个新表中,最开始,我是将三张表的数据都以excel导出,在excel中用vlookup函数合并三张表为一张,然后在excel中做sql插入语句拼接,复制到mysql中做批量新增,但中途放弃了。
1.旧数据库中一张存储信息发布的表中有几个字段存储的文本长度太长了,复制和导出到excel中出现数据格式乱了,无法做后面的合并表和sql语句拼接操作
2.即使不出现1的情况,在合并表的时候会出现函数得到的数据无法正常使用。
3.效率低,易出错
将旧数据库中三张表导出脚本文件到本地,然后导入到临时创建的数据库中
1.两张关联的表存进一张新表中
create table 新表 select 字段1,字段2,字段3... from 源表1 inner join 源表2 on 源表1.主键=源表2.外键
2.在将刚新增的表和另一张表存进一张新表中,代码同上
3.最后的新表就是三张表的合并表,为何不一次做三张表的关联再存入一张新表中,中途会遇见表数据不会,需要做数据量的校验,防止出错
4.将新表存入新数据库的目标表中,目标表在实际业务中新增会对个别字段设置默认值,所有最后一步要做目标表的默认字段的值修改
两张有关联的表,将一张表的某个字段的值存进另一张表的某个指定字段
update 目标表,源表 set 目标表.字段 = 源表.字段 where 目标表.id = 源表.id