我正在尝试使用以下命令将.CSV文件中的数据加载到MySQL数据库中。
LOAD DATA LOCAL INFILE "FILEPATH/EQUIPMENT.CSV"
INTO TABLE EQUIPMENT
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\R\N'
IGNORE 1 LINES;
但是,在尝试将信息加载到数据库时,MySQL会返回以下错误:
Error Code: 1292. Incorrect date value: '0000-00-00' for column 'END_OF_LIFE' at row 1
这个错误没有任何意义。作为价值' 0000-00-00'没有在第一行中为数据集指定。请参阅下面的示例数据集。
+---------------+-------------+
| EQUIPMENT_ID | END_OF_LIFE |
+---------------+-------------+
| B1010-V003 | 1800-01-01 |
| B1010-V001 | 1800-01-01 |
| B1010-V005 | 1800-01-01 |
+---------------+-------------+
任何人都知道为什么系统可能会返回此错误? (我已经尝试将日期更改为更合理的值,但这也不起作用。)
答案 0 :(得分:0)
试试这个:
/usr/bin/mysql --local-infile=1 -u$DB_user -p$DB_pw --database=$DB_database < $working_dir/load_ic2_loc_batch.sh 2>> $logfile
答案 1 :(得分:0)
我实际上发现了什么是错的。这是因为我的脚本中的行结尾被错误地指定为大写字母(我猜输入CSV文件中的MS DOS行结尾区分大小写)。请参阅下面的更正脚本。
LOAD DATA LOCAL INFILE "FILEPATH/EQUIPMENT.CSV"
INTO TABLE EQUIPMENT
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;