with used usar txt the terminated statement secure running priv not infile fields ejemplo data como cannot allowed mysql sql

used - mysql import csv command line



¿Cómo CARGAR DATOS DE INFILE en mysql con la primera columna siendo Auto Incremento? (7)

Actualmente, tenemos una tabla similar a esta:

--------------------- ID | AField | BField| ---------------------

La ID es Auto Incremento

¿Cómo creo un CSV que permita que la base de datos rellene automáticamente el campo de ID con el número de incremento automático?

Hemos probado el siguiente CSV pero no funciona:

afieldvalue, bfieldvalue (With Column definition but still doesn''t work) 0,afieldvalue,bfieldvalue NULL,afieldvalue,bfieldvalue


CARGUE LOS DATOS DE CARÁCTER ''/tmp/data.csv'' EN LA TABLA your_table CAMPOS TERMINADOS POR '','' LÍNEAS TERMINADAS POR ''/ r'' (AField, BField);


Intente usar NULL como el valor en el archivo csv para el campo de ID.


Lo mejor que puede hacer es incluir las 2 columnas sin incremento automático en el CSV, y luego establecer explícitamente la columna de ID en NULL en la declaración de infile de datos de carga.

Algo como esto:

LOAD DATA INFILE ''/tmp/data.csv'' INTO TABLE your_table FIELDS TERMINATED BY '','' (AField, BField) SET ID = NULL;


Si solo tiene una pequeña cantidad de columnas, puede simplemente nombrarlas: LOAD DATA LOCAL INFILE ''myfile.txt'' INTO TABLE mytable (AField); (asumiendo solo ID y campo de juego)


puede "omitir" el campo de ID en la fila de datos colocando el signo delimitador al principio de una fila, como (para el ID,AField,BField esquema de la tabla ID,AField,BField ):

,afieldvalue,bfieldvalue ...

mientras se lee dicho archivo csv, el script asignará NULL al campo ID


NULL en el archivo CSV se lee como STRING en MySQL. Si desea tener valores nulos en una columna MySQL, use /N en lugar de `NULL. Esto solucionará el problema y obtendrá el resultado requerido.


LINES TERMINATED BY ''/r/n''

Esa fue la clave del éxito para mí al usar un archivo de texto