Mysql - 加载格式化日期的数据文件

标签 mysql load-data-infile

编辑: 我可以用这种格式只用一行来存储一个文件的记录。

0,2016-03-31-13:48:16.435,0.705486,1,F2221-222

但是当我尝试存储一个包含 2 行或更多行的文件时,我得到了一个错误。

0,2016-03-31-13:48:16.435,0.705486,1,F2221-222
1,2016-03-31-13:48:16.435,0.56606096,2,F2221-222

我正在使用:

load data infile 'flight3021' 
into table signal_times
fields terminated BY ','
(signaltime_id,@var1,value,signal_id,flight_number)
SET time = STR_TO_DATE(@var1,'%Y-%m-%d-%H:%i:%S.%f')

错误:

Cannot add or update a child row: a foreign key constraint fails (`cmsdbdev`.`signal_times`, CONSTRAINT `FK_r2e4qo5suuwrlkr08ryebv14i` FOREIGN KEY (`flight_number`) REFERENCES `flight_data` (`flight_number`))

奇怪的是,如果我正常插入这两行它就可以工作,所以它与 FK 约束违规错误有关。我认为这一定是加载数据文件的问题。

谢谢。

最佳答案

'2016-03-31-13:16:24.861' 加载为“'2016-03-31-13:16:24.861'”,其中这就是为什么它不是有效的 datetime

我使用 TRIM 函数来尝试解决这个问题。

对于多行,lines terminated by 是必需的。

load data infile '/home/jinggang.sjg/data1' 
into table signal_times
fields terminated BY ',' ESCAPED BY ""
lines terminated by '\r\n'
(signaltime_id,@var1,value,signal_id,flight_number)
SET time = STR_TO_DATE(@var1,'%Y-%m-%d-%H:%i:%S.%f');

关于Mysql - 加载格式化日期的数据文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36332377/

相关文章:

mysql - 加载数据 INFILE 错误 1064

mysql - 在 shell 脚本中出现错误 1064 (42000) MySQL

mySql:如何创建具有未知数据类型的表?

sql - 从多个连接表创建一个结果集;列由查找表组成

mysql - LOAD DATA LOCAL INFILE 仅有时有效

MySQL 找不到用于加载操作的数据文件

php - 无法加载数据文件工作

php - 对 PHP 中所选列的总和进行求和,我的代码正确吗?

表的 %s 的 Python Mysql 问题

sql - 收集 mysql 统计信息