Saltar al contenido

Cómo importar datos de un archivo de texto a una base de datos mysql

Estate atento ya que en este escrito encontrarás el resultado que buscas.Esta noticia ha sido aprobado por nuestros expertos para garantizar la calidad y exactitud de nuestro post.

Solución:

Debería ser tan simple como…

LOAD DATA INFILE '/tmp/mydata.txt' INTO TABLE PerformanceReport;

Por defecto LOAD DATA INFILE usa tabulado delimitado, una fila por línea, por lo que debería tomarlo bien.

Tutorial sobre el uso del comando LOAD DATA de MySQL:

  1. Crea tu tabla:

    CREATE TABLE foo(myid INT, mymessage VARCHAR(255), mydecimal DECIMAL(8,4));
    
  2. Cree su archivo delimitado por tabulaciones (tenga en cuenta que hay tabulaciones entre las columnas):

    1   Heart disease kills     1.2
    2   one out of every two    2.3
    3   people in America.      4.5
    
  3. Utilice el comando de carga de datos:

    LOAD DATA LOCAL INFILE '/tmp/foo.txt' 
    INTO TABLE foo COLUMNS TERMINATED BY 't';
    

    Si recibe una advertencia de que este comando no se puede ejecutar, debe habilitar el --local-infile=1 parámetro descrito aquí: ¿Cómo puedo corregir el error de carga de MySQL?

  4. Las filas se insertan:

    Query OK, 3 rows affected (0.00 sec)
    Records: 3  Deleted: 0  Skipped: 0  Warnings: 0
    
  5. Compruebe si funcionó:

    mysql> select * from foo;
    +------+----------------------+-----------+
    | myid | mymessage            | mydecimal |
    +------+----------------------+-----------+
    |    1 | Heart disease kills  |    1.2000 |
    |    2 | one out of every two |    2.3000 |
    |    3 | people in America.   |    4.5000 |
    +------+----------------------+-----------+
    3 rows in set (0.00 sec)
    

Cómo especificar en qué columnas cargar las columnas de su archivo de texto:

Me gusta esto:

LOAD DATA LOCAL INFILE '/tmp/foo.txt' INTO TABLE foo
FIELDS TERMINATED BY 't' LINES TERMINATED BY 'n'
(@col1,@col2,@col3) set [email protected],[email protected];

El contenido del archivo se pone en las variables @col1, @col2, @col3. myid obtiene la columna 1 y mydecimal obtiene la columna 3. Si esto se ejecutara, omitiría la segunda fila:

mysql> select * from foo;
+------+-----------+-----------+
| myid | mymessage | mydecimal |
+------+-----------+-----------+
|    1 | NULL      |    1.2000 |
|    2 | NULL      |    2.3000 |
|    3 | NULL      |    4.5000 |
+------+-----------+-----------+
3 rows in set (0.00 sec)

Si su tabla está separada por otros que no sean pestañas, debe especificarlo como…

LOAD DATA LOCAL 
    INFILE '/tmp/mydata.txt' INTO TABLE PerformanceReport 
    COLUMNS TERMINATED BY 't'  ## This should be your delimiter
    OPTIONALLY ENCLOSED BY '"'; ## ...and if text is enclosed, specify here

Tienes la opción de sostener nuestra publicación escribiendo un comentario o valorándolo te estamos agradecidos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *