Issue with Loadfile mysql
I am trying to load a CSV file using loadfile on mariadb
Here is my loadfile
LOAD DATA INFILE '/usr/src/salary.TXT' INTO TABLE salary
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(`EmpID`,@CHK_DATE,`CATEGORY`,`BASE`,`AMOUNT`)
SET CHK_DATE=IF (@CHK_DATE='',null,STR_TO_DATE(@CHK_DATE, '%m-%d-%Y'));
This is how my salary.TXT file looks
EMP99 ,02-20-2016,Direct Deposit , , 721.77
EMP99 ,02-20-2016,Union Dues , 1092.06, 43.68
EMP99 ,02-20-2016,Labor Mgmt Coop Comm Fund, 39.50, 1.98
EMP99 ,02-27-2016,Direct Deposit , , 568.91
It is loading but all CHK_DATE
is coming as 0000-00-00
Не уверен, где я скучаю.
Заранее спасибо.
1 ответ
Что касается MySQL, это недопустимая дата, обычно вам нужно использовать ISO YYYY-MM-DD
Формат, чтобы избежать двусмысленности. Вам может понадобиться загрузить это во временную таблицу, а затем преобразовать в окончательную схему, используя STR_TO_DATE()
на пострадавшем столбце:
INSERT INTO salary
SELECT ..., STR_TO_DATE(source_date, '%m-%d-%Y'), ...
FROM salary_import