Utilizamos cookies propias y de terceros. [Más información sobre las cookies].
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Wiki

MySQL: Cómo cargar un fichero de texto plano en una tabla MySQL
Bases de Datos


Os explicamos cómo importar el contenido de un fichero de texto plano a una tabla MySQL. Cada línea del fichero se corresponderá con un registro de la tabla MySQL. Para ello utilizaremos la función LOAD DATA INFILE de MySQL.



MySQL cuenta con un función muy útil para importar datos de forma automática, llamada LOAD DATA. Esta función permite importar a registros de una tabla MySQL el contenido de un fichero de texto plano.

El fichero de texto debe cumplir unos requisitos, obviamente, para que la función LOAD DATA pueda reconocerlos. A continuación os mostramos un ejemplo de contenido válido de este fichero.

Para realizar las pruebas oportunas crearemos, en primer lugar, una tabla en MySQL, con la siguiente consulta SQL:

create table importacion (
  codigo int primary key,
  nombre varchar(100) unique not null,
  fecha date,
  importe float,
  observacion text,
  facturado varchar(1)
)

Para ejecutar esta consulta SQL podemos utilizar el software Open Source AjpdSoft Administración Bases de Datos:

AjpdSoft Administración Bases de Datos - Ejecución consulta SQL de MySQL para crear tabla

A continuación ejecutaremos la siguiente consulta SQL para comprobar que la tabla "importacion" se ha creado correctamente:

select *
from importacion

AjpdSoft Administración Bases de Datos - Ejecución consulta SQL de MySQL para crear tabla

A continuación crearemos el fichero de texto plano (sin formato) que contendrá los registros que serán importados de forma automática en la tabla "importación" utilizando la función LOAD DATA de MySQL. Para ello crearemos un fichero (con el bloc de notas o cualquier otro editor de texto sin formato) con el siguiente contenido:

1,"Fernando Alonso",2003-06-04,1000.20,"Prueba importación fichero 1","N"
2,"Alonso Fernando",2008-08-31,900.34,"Prueba importación fichero 2","S"
3,"Juan Pérez",2008-09-01,700.00,"Prueba importación fichero 3","S"

AjpdSoft Administración Bases de Datos - Creación de fichero de texto con Bloc de notas

Y lo guardaremos con el nombre "importar.txt" en la unidad C.

Tras crear el fichero de texto plano abriremos el software de acceso a MySQL, AjpdSoft Administración Bases de Datos y ejecutaremos la siguiente consulta SQL:

LOAD DATA LOCAL INFILE 'c:/importar.txt'
INTO TABLE importacion
FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '"'
LINES TERMINATED BY ' '

AjpdSoft Administración Bases de Datos - Ejecución SQL LOAD DATA IN FILE de MySQL

Ejecutando la consulta SQL:

select * from importacion

Podremos ver el resultado de la importación del fichero de texto plano:

AjpdSoft Administración Bases de Datos - Resultado de importación de fichero con select de MySQL

La función LOAD DATA LOCAL INFILE cuenta con varios parámetros de configuración:

  • FIELDS TERMINATED BY ',': indica que los campos de cada línea del fichero terminarán con "," (coma), pudiendo indicar el carácter con el que terminarán.
  • ENCLOSED BY '"': indica que los campos de tipo char, text, binary, enum de cada línea empezarán y acabarán con el carácter indicado, en este caso comillas dobles """.
  • IGNORE 1 LINES: no cargará la primera línea del fichero de texto.
  • LINES STARTING BY 'xxx': indica que todas las líneas del fichero de texto plano empezarán con "xxx".
  • LINES TERMINATED BY ' ': indica el carácter con el que termina la línea, en este caso un salto de línea y un retorno de carro (en Windows).

Si quisiéramos que MySQL espere a ejecutar la sentencia de importación hasta que no haya usuarios leyendo en la tabla en la que se importarán podríamos utilizar la cláusula: LOW_PRIORITY, de esta forma:

LOAD DATA LOW_PRIORITY IN FILE...

Aunque esta propiedad es sólo válida para tablas MySQL de tipo MyISAM, MEMORY, MERGE.

También podremos indicar el juego de caracteres del fichero del que se importará la información, con:

LOAD DATA IN FILE...
CHARACTER SET juego_caracteres

 


Anuncios


Enviado el Lunes, 01 septiembre a las 01:00:10 por ajpdsoft
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A