2011-12-02 43 views
0

除了LOAD DATA INFILE命令,是否有任何其他方式來讀取包含Mysql的三列的.txt文件?我想逐行讀取數據並將它們放入Mysql中的表中。轉換數據類型,然後通過Python將數據加載到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時間的第一列轉換爲日期時間以來的數據類型Mysql中的第一列是DATETIME,我想用FROM_UNIXTIME來解決這個問題。但是我怎樣才能使用一個python變量作爲fieldnameFROM_UNIXTIME(fieldname)這是一個Mysql命令?

更新: 這是我的解決方案 我有表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

你的表中有一列叫做「datetime」?這是一個等待發生的事故。 Datetime也是一種sql數據類型。 –

回答

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

這正常工作與您的樣本集。