I am trying to load a csv file into mySQL. I want to ignore 3 columns so I am using the '@' character to achieve that. It seems that everything is being uploaded apart from the data after the first column I ignore (named : 'ignore1').
Is this a bug of mySQL software?
LOAD DATA LOCAL INFILE 'Z:/test.csv'
INTO TABLE IN_Apolo
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS
(name, @date, @ignore1, @ignore2, @ignore3, column3, column4)
set date = str_to_date(@date,'%Y-%m-%d')
;
column3 and column4 appear to be NULL
UPD:
I tried using this code and it works:
LOAD DATA LOCAL INFILE 'Z:/test.csv'
INTO TABLE IN_Apolo
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS
(@name, @date, @column3, @column4)
set name=@name, date = str_to_date(@date,'%Y-%m-%d'), column3=@column3, column4=@column4 ;
but it should work with the first version too.
LOAD DATA LOCAL INFILE 'Z:/test.csv'
INTO TABLE IN_Apolo
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(@name, @date,@column3, @column4)
set name=@name,date=str_to_date(@date,'%Y-%m-%d'),column3=@column3,column4=@column4;
Try using this...
Table:
DROP TABLE IF EXISTS `test_table`;
CREATE TABLE `test_table` (
`name` VARCHAR(20) DEFAULT NULL,
`date` DATE DEFAULT NULL,
`ignore_1` VARCHAR(20) DEFAULT NULL,
`ignore_2` VARCHAR(20) DEFAULT NULL,
`ignore_3` VARCHAR(20) DEFAULT NULL,
`column_3` VARCHAR(20) DEFAULT NULL,
`column_4` VARCHAR(20) DEFAULT NULL
) ENGINE=InnoDB;
File:
/path/to/test_file.csv
"name","date","ignore_1","ignore_2","ignore_3","column_3","column_4"
"name_0","2000-01-01","ignore_1_0","ignore_2_0","ignore_3_0","column_3_0","column_4_0"
"name_1","2000-01-02","ignore_1_1","ignore_2_1","ignore_3_1","column_3_1","column_4_1"
"name_2","2000-01-03","ignore_1_2","ignore_2_2","ignore_3_2","column_3_2","column_4_2"
MySQL Command-Line:
mysql> LOAD DATA INFILE '/path/to/test_file.csv'
INTO TABLE `test_table`
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS
(`name`, @`date`, @`ignore_column`, @`ignore_column`, @`ignore_column`, `column_3`, `column_4`)
SET `date` = STR_TO_DATE(@`date`, '%Y-%m-%d');
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With