我想加載數據文件到mysql表中使用「LOAD DATA LOCAL INFILE'文件名'INTO TABLE'tablename'」。mysql加載數據INFILE與自動增量主鍵
問題是源數據文件包含每個字段的數據,但主鍵丟失('id'列)。我在創建數據庫時添加了唯一的id字段,但現在我需要從下一個字段開始將數據導入到表中,並在導入時自動增加id字段。
def create_table():
cursor.execute ("""
CREATE TABLE variants
(
id integer(10) auto_increment primary key,
study_no CHAR(40),
other fields.....
)
""")
這裏是我的LOAD查詢
query1= "LOAD DATA LOCAL INFILE '"+currentFile+"' INTO TABLE variants FIELDS TERMINATED BY '\\t' LINES TERMINATED BY '\\n'"
什麼想法?
總結: 創建一個表具有附加id字段,將自動遞增 負載數據(20列)成21個字段跳過id字段的表 讓id字段具有自動增量索引自動填充。
有沒有簡單的方法列出所有20列名稱可能就像列表[1:]符號?或者我必須輸入每個列名,例如study_no,family_no等? 謝謝 – biomed 2010-04-26 19:35:06
列列表必須位於最後,並且id列必須具有set = null才能自動遞增 – biomed 2010-04-26 20:02:46
要添加列名稱,您應該可以這樣做:cursor.execute(「DESCRIBE tablename」);查詢=「LOAD DATA INFILE'data.txt'INTO TABLE tablename(%s)」%','.join([x:0] for cursor.fetchall()] [1:]) – Aaron 2010-04-26 23:44:22