0
一般LOAD DATA INFILE语法到本地机器上工作是:LOAD DATA INFILE用法导入CSV?
LOAD DATA [LOW_PRIORITY | CONCURRENT] LOCAL INFILE 'file_name'
[REPLACE | IGNORE]
INTO TABLE tbl_name
[CHARACTER SET charset_name]
[{FIELDS | COLUMNS}
[TERMINATED BY 'string']
[[OPTIONALLY] ENCLOSED BY 'char']
[ESCAPED BY 'char']
]
[LINES
[STARTING BY 'string']
[TERMINATED BY 'string']
]
[IGNORE number LINES]
我写在Ruby程序,它应该是能够导入各种CSV到一个MySQL表。
CSV文件完美地存储在一个变量中,并获取标题并完美地创建表格。问题是我得到的每个CSV文件都不同,并且必须修改参数LOAD DATA LOCAL INFILE
才能识别CSV文件格式。
例如,在一个CSV中,LINES TERMINATED BY
选项必须设置为'\n'
,而在另一个CSV中必须设置为'\r'
。同样,在一个CSV ESCAPED BY '[char]'
必须存在才能正确导入,而在另一个CSV不得存在。
是否有任何可能的方式提供多个值来检查?像TERMINATED BY '\n or \r'
或ENCLOSED BY '\ or "'
?
EDIT:
当我这样做:
FasterCSV.foreach(csv) do |row|
@first = row
break
end
我得到的第一行。是否可以检测该行终止符,无论是从该单行开始的\n
还是\r\n
或\r
?
我已经工作过这个加载文件选项,但根据我的知识,您需要检查该选项并手动提供它并相应地运行加载文件脚本。 –
我正在使用这个称为'FasterCSV'的gem来读取csv文件...任何想法,如果它可以用来检测CSV格式并将其返回到查询? –
我不知道这件事。 –