LOAD DATA INFILE en MySql

Este post sólo es para una queja, bueno ya! para una pregunta.

Sucede que quiero usar LOAD DATA INFILE para subir una data a una tabla y también quiero modificar algunos campos.

Por tanto, guiandome de la documentación de la pagina de mysql mi sentencia lo hago asi:

LOAD DATA INFILE ‘/opt/lampp/htdocs/mis_test/prueba.txt’
INTO TABLE prueba
(uno,@pio,tres,cuatro)
SET dos = substring(@pio,1,4);

Esta sentencia funciona correctamente. La tabla tiene 4 campos (uno,dos,tres,cuatro) y yo subo los 4 campos pero al 2do campo le digo que solo quiero los 4 primeros caracteres. Bueno esto funciona!

Pero si se han dado cuenta, en esta sentencia hay varias cosas que estan por default, como que la sentencia deduce que los campos estan separados por tabulaciones y que el final del carro es “rn”.

Sin embargo, que sucede si mi archivo no se cuentra separado por tabulaciones, sino esta separado por “nada”.
Quiero decir.

pollo alexande115153
pollo alexande214163
pollo alexande356123
pollo alexande445828
pollo alexande535013

EN la 1era fila, mi primer campo es “pollo”, el segundo es “alexande” el tercero “1151” y el cuarto “53”.
Obviamente que los campos deben tener la misma longitud, osea: uno varcha(5), dos varchar(8), tres, varcha(4), cuatro varchar(2).

Entonces la sentencia sería:

LOAD DATA INFILE ‘/opt/lampp/htdocs/mis_test/prueba.txt’
INTO TABLE prueba
FIELDS TERMINATED BY ” LINES TERMINATED BY ‘rn’

Chevere! funciona! y si quiero modificar algún campo?

LOAD DATA INFILE ‘/opt/lampp/htdocs/mis_test/prueba.txt’
INTO TABLE prueba
FIELDS TERMINATED BY ” LINES TERMINATED BY ‘rn’
(uno,@pio,tres,cuatro)
SET dos = substring(@pio,1,4);

Este es mi problema. Me da un error “ERROR 1409 (HY000): Can’t load value from file with fixed size rows to variable“. Sin embargo, me he dado cuenta que el error viene de FIELDS TERMINATED BY ” porque cuando coloco que sea separado por ,(coma) o por ;(punto y coma) o t(tabulaciones), este si lo acepta y lo realiza, pero cuando es separado por ”(Nada), me da ese error….

Vaya.. y en google… no hay nada…

2 thoughts on “LOAD DATA INFILE en MySql”

  1. My brother rnodmmeeced I would possibly like this web site. He used to be totally right. This submit actually made my day. You can not believe simply how a lot time I had spent for this info! Thanks!

Leave a Reply

Your email address will not be published. Required fields are marked *