Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/01/2004, 21:03
Avatar de SkyWalker
SkyWalker
 
Fecha de Ingreso: enero-2002
Mensajes: 39
Antigüedad: 22 años, 4 meses
Puntos: 0
Cargar archivo de texto en una tabla mysql

Hola, en mi intento por optimizar una base de datos, me he topado con el siguiente problema:

Resulta que al cargar un archivo de texto en una tabla mysql con LOAD DATA INFILE exite un parametro que se supone solo carga las columnas q interesan. Pero por mas q intento no consigo que lo haga correcto.

Esto es lo q aparece en la página de mysql:

If you wish to load only some of a table's columns, specify a field list:

mysql> LOAD DATA INFILE 'persondata.txt'
INTO TABLE persondata (col1,col2,...);

You must also specify a field list if the order of the fields in the input file differs from the order of the columns in the table. Otherwise, MySQL cannot tell how to match up input fields with table columns.

(Claro no se inglés o muy poco y no lo entiendo bien)

En mi caso, tenia una tabla que se cargaban todos los datos y columnas de un archivo que es generado por otro programa y no se puede variar (en principio), despues simplemente no usaba los datos de las columnas q no me interesaban y listo, pero claro, estos datos ocupan espacio innecesario, asi q he borrado de la tabla las columnas que no me interesan y quiero cargar solo las q me interesan. He probado de dos formas, indicando (campo1,campo3,campo7), teniendo en cuenta q la primera linea del fichero (q es de tipo CSV), sería:

campo1;campo2;campo3;campo4;....

y el resultado es que me ha cargado las columnas: campo1,campo2,campo3 cuando yo queria q me cargara la 1, 3 y 7

como los nombres de las columnas de la tabla y del CSV son similares he probado tambien indicar LOAD DATA INFILE 'fichero.csv' INTO TABLE tabla (Campo1,CAmPO3,...); consiguiendo resultado similares, pero el nombre del campo es distinto (Columna1,Columna3,....) no carga nada de nada.


Es posible conseguir lo q pretendo?

A caso solo se pueden cargar las columnas que desees, en numero, pero siempre seguidas y no salteadas?

Gracias por su ayuda.

Un saludo.