I was experiencing problems with loading CSV files into MySQL tables. I noticed that it was skipping every other row in most cases. I was using the following SQL code to load the CSV file:
LOAD DATA LOCAL INFILE 'test.csv'
INTO TABLE games
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 0 LINES;
Solution:
It turns out that the CSV file that I was loading had line endings that my MySQL client did not recognize. I found out that the CSV file was coming from a Windows machine while I was trying to load it onto a Mac OSX machine’s MySQL client/server.
To fix this, I ran the following conversion command, which removed the Windows specific line endings:
1
|
cat test .csv | tr -d '\r' > "test.fixed.csv" |
I verified that this fixed the file by opening it up in TextWrangler and noting the line ending style on the bottom status bar.