标签:语句 insert 文件 ++ notepad csv
使用notepad++/excle快速将cvs文件转换为insert语句技巧以及注意点
业务场景
最近nc项目经理从第三方弄来了一个300w行的csv文件,让导入数据库做处理,出现了下列问题:
csv文件中的字段分隔符,默认使用,
进行分隔的,insert的字段个数必须和插入字段的个数对应上,错误的原因就是:存储的问题子当中,有用,
分隔的内容,导入的时候导致多一个字段,每次导入一部分就出错。
注意事项/问题:
文件过大,excle/notepad++均无法打开,使用linux工具对文件进行按行拆分
#将文件上传到linux中,使用下面命令,total.csv为需要拆分的文件,company为拆分后的文件名 split -l 100000 total.csv company
- 文件格式无法不能用excle编辑,编辑后,出现格式乱码,可使用notepad++编辑保存;
- 拆分后的文件也不宜过大,否则进行字符替换的时候,编辑器会卡死;
- 由于使用转为insert语句导入的原因,空字符串在导入的过程中容易出错,所以讲空用
""
代替;
一、使用notepad++转换sql语句
1.使用正则表达是将最后一个行最后的字符替换为")
;
"$"找到最后一个字符;
将最后一个字符替换为");",及sql语句的结束语句;
前两步效果:
将,
替换为","
,因为csv文件中如果为空值,会直接用,
隔开,不会区分字段的分割,
将开头换为"(
,记得要使用转义字符,不然无法替换
再将开头换为insert语句
,
最后结果:
二、使用excle替换
这次不用在意文件的格式,因为最后是保存sql语句
下面是公式
=CONCATENATE("INSERT INTO `new1_copy`(`DWMC`, `DWDZ`, `ZZJGDM`, `DWDH`, `DWDJ`, `DWXZ`, `XZQY`, `AQZRR`, `DWLX`, `AQZRRSFZ`, `AQZRRDH`, `JZMJ`, `DWZSX`, `GIS_X`, `GIS_Y`, `Deleted`) VALUES ('",A1,"','",B1,"','",C1,"','",D1,"','",E1,"','",F1,"','",G1,"','",H1,"','",I1,"','",J1,"','",K1,"','",L1,"','",M1,"','",N1,"','",O1,"','",P1,"');")
如果数据量很大,下拉很慢,双击公式单元格左下角:
会自动往下生成
标签:语句,insert,文件,++,notepad,csv 来源: https://www.cnblogs.com/liweiweicode/p/12077668.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。