Sintaxis
Utilizando LOAD DATA INFILE para cargar una gran cantidad de datos a la base de datos
Considera el siguiente ejemplo asumiendo que tienes un CSV delimitado por ‘;’para cargar en tu base de datos.
1;max;male;manager;12-7-19852;jack;male;executive;21-8-1990...1000000;marta;female;accountant;15-6-1992
Cree la tabla para la inserción.
Usa la siguiente consulta para insertar los valores en esa tabla.
Considera el caso en el que el formato de la fecha no es estándar.
1;max;male;manager;17-Jan-19852;jack;male;executive;01-Feb-1992...1000000;marta;female;accountant;25-Apr-1993
En este caso puedes cambiar el formato de la columna dob
antes de insertarla así.
Este ejemplo de LOAD DATA INFILE no especifica todas las funcionalidades disponibles.
Puede ver más referencias sobre LOAD DATA INFILE aquí.
Importar un fichero CSV a una tabla MySQL
El siguiente comando importa ficheros CSV a una tabla MySQL con las mismas columnas respetando las reglas de entrecomillado y escape de CSV.
Cargar datos con duplicados
Si utiliza el comando LOAD DATA INFILE
para rellenar una tabla con datos existentes, a menudo encontrará que la importación falla debido a los duplicados. Hay varias formas posibles de superar este problema.
Si se ha activado esta opción en su servidor, se puede utilizar para cargar un archivo que existe en el ordenador del cliente y no en el servidor. Un efecto secundario es que se ignoran las filas duplicadas para valores únicos.
LOAD DATA LOCAL INFILE 'path of the file/file_name.txt' INTO TABLE employee
CARGA DE DATOS INFILE ‘fname’ REPLACE
Cuando se utiliza la palabra clave replace los duplicados de claves únicas o primarias resultarán en que la fila existente sea reemplazada por otras nuevas
LOAD DATA INFILE 'path of the file/file_name.txt' REPLACE INTO TABLE employee
CARGAR INFILO DE DATOS ‘fname’ IGNORAR
Lo contrario de REPLACE
, se conservarán las filas existentes y se ignorarán las nuevas. Este comportamiento es similar al de LOCAL
descrito anteriormente. Sin embargo, no es necesario que el archivo exista en el ordenador cliente.
LOAD DATA INFILE 'path of the file/file_name.txt' IGNORE INTO TABLE employee
Carga a través de una tabla intermedia
A veces, ignorar o reemplazar todos los duplicados puede no ser la opción ideal. Puede que necesites tomar decisiones basadas en el contenido de otras columnas. En ese caso la mejor opción es cargar en una tabla intermedia y transferir desde allí.
INSERT INTO employee SELECT * FROM intermediary WHERE ...
Importación / exportación
Importación
SELECT a,b,c INTO OUTFILE 'result.txt' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM table;
Exportación
LOAD DATA INFILE 'result.txt' INTO TABLE table;