1、应用背景:昨天项目搞活动,由于运营人员在活动开始之后还重复更改活动配置,导致活动1、
1、应用背景:昨天项目搞活动,由于活动运营人员在活动开始之后还重复更新活动配置,导致活动数据的存储出现问题,情况大概是:需要挪动A表数据到B表,俗称数据补回。
2、解决方案:先做数据备份的基础上,将符合条件的A表中的数据主键(id)查出来,然后通过navicat导出excel,然后创建一个临时表,导入这份excel的数据,最后通过A表与临时表关联查询,把查询出来的数据插入到B表,完成操作。
就在这个导入的过程中,由于我的疏忽,我把临时表的字段长度设为了64位(因为我怕不够长度,尽量设的大了点),但是A表的id字段只有32,位,64大于32,大家都觉得完全可以存储是吧。当时确实能够将32位的数据导入到了64位的字段存储,但是发现64位存储的数据前面多了空格(我的理解是32位数据为了补够64位,在数据前面填了空格,不知道这样理解对不对,有经验的朋友麻烦解答下),所以这时候A表跟临时表连表查询是查不到数据的。无奈我只能删掉临时表数据,将临时表字段改为32位重新导入,结果出现“字段长度不够”。最后我是直接通过insert into select的方式插数据到临时表的。
我这边初步认为有两个原因:
1、导出的数据源格式不对;
2、navicat的导入方式的问题。