0
我有四列的文件:从列值中提取年份和月份值,并插入到MYSQL
local_timestamp, utc_timestamp, pointname, pointvalue
7/7/2017 12:29:00 PM,7/7/2017 6:59:00 AM,STS.PresentValue,1.0
7/7/2017 12:30:00 PM,7/7/2017 7:00:00 AM,STS.PresentValue,1.0
我创建了如下表:
CREATE TABLE sample(
`local_timestamp` DATETIME NOT NULL,
`utc_timestamp` DATETIME NOT NULL,
`pointname` VARCHAR(50) NOT NULL,
`pointvalue` FLOAT NOT NULL DEFAULT 0.0,
`year_id` INT NOT NULL,
`month_id` INT NOT NULL,
UNIQUE KEY (year_id,month_id))
PARTITION BY KEY() ;
现在,因为该文件包含只有4个字段,但表中包含6,我想如何使用LOAD DATA INFILE将数据批量插入到表中。
year_id
和month_id
字段应具有local_timestamp
字段中的年份和月份值。
我想下面的东西,但它抛出一个错误。
LOAD DATA INFILE 'D:/data/*'
INTO TABLE sample
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n'
(@var1, @var2, pointname, pointvalue)
SET local_timestamp = STR_TO_DATE(@var1, '%d/%m/%Y %h:%i:%s %p'), utc_timestamp = STR_TO_DATE(@var2, '%d/%m/%Y %h:%i:%s %p'), year_id = YEAR(@var1),month_id = MONTH(@var1);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'utc_timestamp = STR_TO_DATE(@utc_timestamp, '%d/%m/%Y %h:%i:%s %p'), pointname =' at line 6
更新默认或空或空值和上传文件的两个领域 –
@AnkitAgrawal已经更新了问题 –
我可以用别的东西插入之前转换和生成所需数据的其余部分,但是这将是一个添加,但在我去之前,做一些其他事情我想知道这是否可以通过SQL –