Estoy tratando de cargar un archivo de datos en la tabla mysql usando "LOAD DATA LOCAL INFILE 'nombre de archivo' INTO TABLE 'tablename'".mysql LOAD DATA INFILE con autoincremento de la clave principal
El problema es que el archivo de datos de origen contiene datos de todos los campos, pero falta la clave principal (columna 'id'). Añado un campo de identificación único mientras creo la base de datos, pero ahora necesito importar los datos en la tabla comenzando desde el siguiente campo y aumentar automáticamente el campo de id. Al importar.
def create_table():
cursor.execute ("""
CREATE TABLE variants
(
id integer(10) auto_increment primary key,
study_no CHAR(40),
other fields.....
)
""")
aquí es mi carga de consulta
query1= "LOAD DATA LOCAL INFILE '"+currentFile+"' INTO TABLE variants FIELDS TERMINATED BY '\\t' LINES TERMINATED BY '\\n'"
alguna idea?
Resumen: crear una tabla con un campo de ID adicional que se auto incremento datos de carga (20 columnas) en la tabla de 21 campos saltarse el campo id dejar que el campo id rellenar automáticamente con un índice de incremento automático.
¿Existe una manera fácil de enumerar los 20 nombres de columna que pueden ser como una notación de lista [1:]? ¿O debo escribir el nombre de cada columna como study_no, family_no, etc.? gracias – biomed
la lista de columnas debe estar al final y la columna id debe tener un set = null para autoincrementarse – biomed
Para agregar los nombres de columna, debe poder hacer: cursor.execute ("DESCRIBE tablename"); query = "LOAD DATA INFILE 'data.txt' INTO TABLE tablename (% s)"% ',' .join ([x [0] para x en cursor.fetchall()] [1:]) – Aaron