I am trying to load a data file into mysql table using \"LOAD DATA LOCAL INFILE \'filename\' INTO TABLE \'tablename\'\".
The problem is the source data file contains dat
the column list must be at the very end and id column must have a set=null to be auto incremented – unfortunately the mysql documentation is very vague. they justt say col1, col2, but are those in the source file or in the dest table . This page helped a lot by clear examples.
http://www.experts-exchange.com/articles/Database/MySQL/Load-Delimited-Data-into-MySQL-Server.html
Use the following query in case the csv record is like that
"21231","234424","My Category","1"
LOAD DATA LOCAL INFILE 'C:/wamp/www/cakephp/app/webroot/files/product_catalogs/categories.csv' INTO TABLE cats FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' (category_id,parent_id,category,is_leaf)
I have done that successfully. :)
Specify a column list:
By default, when no column list is provided at the end of the LOAD DATA INFILE statement, input lines are expected to contain a field for each table column. If you want to load only some of a table's columns, specify a column list:
LOAD DATA INFILE 'persondata.txt' INTO TABLE persondata (col1,col2,...);
http://dev.mysql.com/doc/refman/5.1/en/load-data.html
your data file should look like this: null, study chars, other fields... MySQL will insert incremented id istead of null
LOAD DATA LOCAL INFILE '/var/www/.........../file.csv' INTO TABLE table_name FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\\r\\n' (field1,field2,.........,fieldn)
This is in case of ubuntu