除LOAD DATA INFILE
命令外,还有其他方法可以读取包含三列到Mysql的.txt文件吗?我想逐行读取数据并将它们放入Mysql中的表中。
在以下LOAD DATA INFILE
命令中转换数据类型是不可能的,对吗?
LOAD DATA INFILE 'filename' into TABLE info (col1, col2, col3)
我的数据样本如下:
123456.123455 dsfd wqoe
123455.123237 dert 2222
098878.938475 lkjf 2346
所以在我将数据加载到Mysql之前,我需要将第一列从unix时间转换为datetime,因为Mysql中第一列的数据类型是DATETIME
,我想使用FROM_UNIXTIME
解决这个问题。但是如何在fieldname
中使用python变量作为Mysql命令的FROM_UNIXTIME(fieldname)
?
更新:
这是我的解决方案
表格video
中有三列,分别为datetime, src_ip, video_id
问题是,@ unixtime变量只能保存一个值或?从现在开始我在mysql中的第一列完全相同,也许它等于最后的结果。我可以解决这个问题吗?
insertQuery = "LOAD DATA LOCAL INFILE 'all-filter.txt' INTO TABLE video (@unixtime, src_ip, video_id); UPDATE video SET datetime=FROM_UNIXTIME(@unixtime)"
答案 0 :(得分:1)
我尝试过以下方法:
create table info (s datetime not null primary key, str varchar(100), str2 varchar(100));
load data local infile '/home/maartenl/sample.txt'
into table info (@s, str, str2)
set s = from_unixtime(@s);
这适用于您的样本集。