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格式並將其返回到查詢? –
我不知道這件事。 –