Tengo un archivo CSV que contiene 10 columnas. Quiero seleccionar solo algunas columnas de ese archivo y cargarlas en una base de datos MySQL usando el comando LOAD DATA INFILE
.Cómo insertar columnas seleccionadas de un archivo CSV a una base de datos MySQL usando LOAD DATA INFILE
Respuesta
LOAD DATA INFILE 'file.csv'
INTO TABLE t1
(column1, @dummy, column2, @dummy, column3, ...)
FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '"'
LINES TERMINATED BY '\r\n';
basta con sustituir la columna 1, columna2, etc .. con los nombres de las columnas, y poner @dummy anwhere hay una columna en el CSV que desea ignorar.
Detalles completos here.
Cargar datos en una tabla en MySQL y especificar columnas:
LOAD DATA LOCAL INFILE 'file.csv' INTO TABLE t1
FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'
(@col1,@col2,@col3,@col4) set [email protected],[email protected] ;
@ col1,2,3,4 son variables para contener las columnas de archivos CSV (suponga 4) nombre, identificación son las columnas de la tabla.
Ejecuto su respuesta en mysql y aparece un error: 'ERROR 1148 (42000): El comando usado no está permitido con esta versión de MySQL'. – shgnInc
@shgnInc refiera esto http://stackoverflow.com/questions/16285864/how-can-i-correct-mysql-load-error – ArK
¿Qué pasa si tengo 100 columnas y solo quiero importar 2 columnas, entonces debería escribir (@ col1, @ col2, ... @ col100) set name = @ col4, id- @ col2; o hay una manera fácil? – Dharma
Especifique el nombre de las columnas en el archivo CSV en la declaración del archivo de carga de datos.
El código es así:
LOAD DATA INFILE '/path/filename.csv'
INTO TABLE table_name
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n'
(column_name3, column_name5);
Aquí vas con la adición de datos a sólo dos columnas (se puede elegir con el nombre de la columna) de la tabla.
Lo único que debe tener cuidado es que tiene un archivo CSV (filename.csv) con dos valores por línea (fila). De lo contrario, por favor mencionar. Tengo una solución diferente.
Gracias.
probablemente las otras respuestas estén un poco desactualizadas. este funcionó para mí con MySQL 5.6 –
Gracias por poner la ruta completa al archivo. ¡Por un momento, estaba buscando el directorio MySQL en el que tengo que poner el archivo csv! – Shrinath
Este funciona mejor, aunque el camino debe ser desde las áreas seguras permitidas. Ejecute este comando MOSTRAR VARIABLES COMO "secure_file_priv"; y luego suelte el archivo csv en esta ubicación –
Ejemplo:
contenido del archivo ae.csv:
"Date, xpto 14"
"code","number","year","C"
"blab","15885","2016","Y"
"aeea","15883","1982","E"
"xpto","15884","1986","B"
"jrgg","15885","1400","A"
CREATE TABLE Tabletmp (
rec VARCHAR(9)
);
Para poner única columna 3:
LOAD DATA INFILE '/local/ae.csv'
INTO TABLE Tabletmp
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 2 LINES
(@col1, @col2, @col3, @col4, @col5)
set rec = @col3;
select * from Tabletmp;
2016
1982
1986
1400
- 1. MySQL LOAD DATA INFILE - Cargando un archivo sin clave principal
- 2. LOAD DATA INFILE no funciona
- 3. Cómo saltear columnas en un archivo CSV al importar a la tabla MySQL utilizando LOAD DATA INFILE?
- 4. archivo de MySQL de importación (LOAD DATA LOCAL INFILE)
- 5. mysql LOAD DATA INFILE con autoincremento de la clave principal
- 6. MySQL "LOAD DATA INFILE" y que faltan comillas dobles
- 7. LOAD DATA INFILE equivalente en Oracle
- 8. mysql load data infile where clause
- 9. MySQL LOAD DATA LOCAL Ejemplo de INFILE en python?
- 10. MySQL: Cargar datos infile
- 11. La mejor forma de capturar errores LOAD DATA LOCAL INFILE?
- 12. LOAD DATA LOCAL, ¿Cómo omito la primera línea?
- 13. LOAD DATA INFILE ¿convierte fácilmente YYYYMMDD a YYYY-MM-DD?
- 14. ¿Cómo acelerar la carga de datos en InnoDB (LOAD DATA INFILE)?
- 15. Cómo cambiar la fecha de cadena al formato de fecha de MySQL en el momento de importar CSV utilizando MySQL LOAD DATA LOCAL INFILE
- 16. ¿Qué archivos y permisos de directorio se requieren para MySQL LOAD DATA INFILE?
- 17. MySQL importar datos CSV - ignorar algunas columnas csv
- 18. ¿Es posible usar un comando de tipo LOAD DATA INFILE para ACTUALIZAR filas en el db?
- 19. mysql load data infile no puede obtener la estadística del archivo Errcode: 2
- 20. ¿Cómo usar la declaración LOAD DATA INFILE cuando el archivo es otra ubicación?
- 21. LOAD DATA LOCAL INFILE pierde la conexión, ¿cómo soluciono el tiempo de espera?
- 22. ¿Cómo insertar un archivo en la base de datos MySQL?
- 23. Importación de datos CSV usando PHP/MySQL
- 24. Importar un gran archivo csv a la base de datos mysql usando php
- 25. ¿Cómo importar un archivo csv en MySQL workbench?
- 26. MySQL carga valores NULL de datos CSV
- 27. Importación de datos CSV masivos en UTF-8 en MySQL
- 28. ¿Cómo funciona 'LOAD DATA INFILE' en la replicación basada en declaraciones?
- 29. LOAD DATA LOCAL INFILE da el error El comando usado no está permitido con esta versión de MySQL
- 30. Carga de datos MySQL infile - ¿aceleración?
me sale un error de sintaxis cuando corro algo así. Tengo que poner el '(campo, nombres)' justo antes del punto y coma al final para que funcione. –
Esto no escala a menos que sepa todas las columnas csv entrantes. –