一、背景
批量导入文件数据到数据库
二、坑
在我们使用MySQL等支持批量导入数据语法(LOAD DATA [LOCAL] INFILE...)的数据库中批量导入数据时,不同操作系统文件的换行符是不同的,Windows是\r\n,而Unix是\n,这就要求导入语法中的 LINE SEPARATOR [换行符] 是动态的。
如果不是动态的,比如在windows系统,csv文件换行符是\r\n,我们语句中写的是\n,就会导致数据库中一行中还存在\r;比如在unix系统,csv文件换行符是\n,我们语句中写的是\r\n,就会导致插入失败。
三、解决方案
程序内打开csv文件,获取行结束符然后当作变量塞入到load语句中