我想加载数据文件到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