转换数据类型,然后通过Python将数据加载到Mysql中

时间:2011-12-02 09:13:38

标签: python mysql

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)"

1 个答案:

答案 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);

这适用于您的样本集。