我正在尝试使用 mariadb 上的 loadfile 加载 CSV 文件
这是我的加载文件
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'));
这就是我的工资.TXT 文件的样子
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
正在加载,但所有 CHK_DATE
均为 0000-00-00
不知道我错过了什么。
提前致谢。
最佳答案
就 MySQL 而言,这不是一个有效的日期,通常您需要使用 ISO YYYY-MM-DD
格式以避免歧义。您可能需要将其加载到临时表中,然后使用 STR_TO_DATE()
将其转换为最终架构。在受影响的列上:
INSERT INTO salary
SELECT ..., STR_TO_DATE(source_date, '%m-%d-%Y'), ...
FROM salary_import
关于mysql - Loadfile mysql 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40925523/