这个需求是这个:因为网站升级在原库的原表中有很多的数据【目前测试是近万条】需要导入到新新库新表中
原来是可以直接库库对接的,但是2台服务器不在同一个区,更别说同机房了。所以为了保险。做了数据的Data Transfer【数据传输】 方法很对,简单的可以是用可视化的平台例如navicat来进行,技术化的可以先备份需要传数据的表。然后导入到新的库中。
第一步,先确认导入到新表中添加数据的字段,确认默认数据,那些是固定数据【默认数据在导入的时候可以不传,固定数据需要在导入的时候做固定填入处理,例如这个文章的status是默认为1的,就可以不传。文章的分类这个表的都是12的就需要固定处理。需要传但是旧表中是没有的】
- INSERT INTO `newtable` (`cid`,`title`,`content`) VALUES (12,'oldtabletitle','oldtablecontent');
这个是新表插入数据的SQL语句脚本。下面先来做固定的数据语句的构建
- INSERT INTO `newtable` (`cid`,`title`,`content`) SELECT 12 ;
写好了固定数据就需要写入旧表中的数据了
- INSERT INTO `newtable` (`cid`,`title`,`content`) SELECT 12,title,content FROM `oldtable` ;
这个就是转换语句了,后面可以加上LIMIT 或者WHERE语句进行限定。
- INSERT INTO `newtable` (`cid`,`title`,`content`) SELECT 12,title,content FROM `oldtable` WHERE cid=2 ;
写好脚本之后,PM说客户又又又有个新需求,原来的那个库中标题有加了写字符,需要清理掉【例如句号“。”】。
- INSERT INTO `newtable` (`cid`,`title`,`content`) SELECT 12,REPLACE(title, '。',''),content FROM `oldtable` WHERE cid=2 ;
这就可以愉快的运行脚本下班了。