编辑: 我可以用这种格式只用一行来存储一个文件的记录。
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/