Tema: leer csv
Ver Mensaje Individual
  #8  
Antiguo 19-03-2020
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Reputación: 11
bucanero Va camino a la fama
Hola!!

En MySQL/Maria existe una función directa que importa un CSV a una tabla. Los parámetros cambian un poco de MySQL a Maria_DB pero básicamente el funcionamiento es similar, aquí tienes la documentación:
Maria_DB: https://mariadb.com/kb/en/columnstore-load-data-infile/
MySQL: https://dev.mysql.com/doc/refman/8.0/en/load-data.html
Los requisitos para poder utilizar esta función es tener creada una tabla con todos los campos que contiene el CSV (puede ser una tabla temporal) y tener el fichero CSV en una ruta accesible de forma local por el motor de BBDD.

La ventaja principal es la rapidez de la conversión de los datos.

Ejemplo de uso para un fichero llamado "csv_test.csv" con separador de ";" y guardado en la carpeta tmd del servidor

Código SQL [-]
LOAD DATA INFILE '/tmp/csv_test.csv' 
  INTO TABLE data_tmp           -- tabla en la que se inserta
  FIELDS
    TERMINATED BY ';'           -- separador de campos
    OPTIONALLY ENCLOSED BY '"'  -- indica si lascadenas van envueltas entre dobles comillas
  LINES
    TERMINATED BY '\r\n'        -- el separador de linea

En MySQL se pueden usar algunos comandos mas como establecer valores por defecto o modificar registros duplicados, etc pero Maria_db esta un poco mas limitado

Y una vez que ya tengas los datos importados en la tabla puedes operar perfectamente con comandos SQL
Responder Con Cita