PDA

Ver la Versión Completa : load data infile


DJ VMan
26-07-2003, 15:25:13
hola a todos,
pronto tendré que importar una enorme cantidad de datos a mysql, son muchas tablas grandes, pero la mas grande es de 120 MB. Asi que comencé a investigar como poder importarlas y no quiero hacer un programa para ello, fue entonces cuando encontre "load data infile".

Importe algunas y va bien, pero el problema lo tengo con aquellos campos con decimales, para ello debo explicar como tengo las tablas planas que quiero importar:

En terminos de mysql, son tablas planas sin delimitaciones de campos, osea campos de largo fijo (fixedrow), osea que un campo double(5,2) debiese estar almacenado como 9999999. Pero por mas que he tratado no puedo importar bien estos campos.

Alguien me puede ayudar?

DJ VMan
26-07-2003, 22:40:37
funcionó lo siguiente:

tabla:

CREATE TABLE `test` (
`var1` decimal(4,2) NOT NULL default '0.00',
`var2` decimal(4,2) NOT NULL default '0.00'
) TYPE=MyISAM;

archivo plano:

123.12123.12
123.12123.12
123.12123.12
123.12123.12
123.12123.12

comando:

load data infile 'test.txt' into table test fields terminated by '' enclosed by''

resultado:

+--------+--------+
| var1 | var2 |
+--------+--------+
| 123.12 | 123.12 |
| 123.12 | 123.12 |
| 123.12 | 123.12 |
| 123.12 | 123.12 |
| 123.12 | 123.12 |
+--------+--------+

conclusión:

tendré que cambiar todas las tablas planas, puesto que las que tengo que insertar en la bd, no poseen '.' como separador decimal. Ojo que esto me pasó con campos de largo fijo (fixedrow). Con los campos entre ' ' ' y ',' es mas fácil.