我想用这个命令将csv表导入mysql:
LOAD DATA LOCAL INFILE 'C:/Users/user/Desktop/SA01505.csv' INTO TABLE hks.orc CHARACTER SET 'utf8' COLUMNS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"' LINES TERMINATED BY '\n' IGNORE 1 LINES (@var1,@var2,@var3,`TI 41-40`,`TI 41-41`,`TI 41-42`,`TI42-40`,`TI 42-41`,`TI 42-42`,`TI 42-43`,`TI 42-43.2`,`TI 42-44`,`TI 42-45`,`TI 42-46`,`TI 42-47`,`PI 42-71`,`PI 42-72`,`PI 42-73`,`PI 42-75`,`FI 42-90`,`TI 43-40`,`TI 43-41`,`TI 45-40`,`TI 45-41`,`TI 47-41`,`TI 47-42`,`TI 47-43`,`TI 47-44`,`LI 42-61`,`SI 44-81`,`QI 46-22`,`UV 41-10_Soll`,`UV 41-10_Ist`,`UV43-10_Soll`,`UV43-10_Ist`,`Tc2`,`Tc3`,`Tc4`)
SET Datum = STR_TO_DATE(CONCAT(@var2,@var3),'%Y/%m/%d%k:%i:%s');
此代码有效,但只导入每隔一行,但每行都以" \ n" (我用十六进制编辑器检查了这个)
答案 0 :(得分:0)
我猜问题就在这里:OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"'
。这是相互咬合的。
在导入的第一行中,封闭列的最后一个"
将转义行终止符的\n
。因此,总是将两行视为一行,您可能在导入的数据中看不到“第二行”,因为数据被截断。
删除ESCAPED BY '"'
子句并查看它是否有效。如果它有效,但你需要它来正确导入你的数据,你将不得不处理你的数据。