Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

no logro migrar datos de un csv a Mysql

Estas en el tema de no logro migrar datos de un csv a Mysql en el foro de Mysql en Foros del Web. Hola amigos, necesito algo de su ayuda con una migración. La tabla a la que quiero megrar hay muchos fereign key y hasta un detalle, ...
  #1 (permalink)  
Antiguo 22/04/2011, 10:57
Avatar de Copia  
Fecha de Ingreso: noviembre-2009
Mensajes: 309
Antigüedad: 14 años, 4 meses
Puntos: 4
no logro migrar datos de un csv a Mysql

Hola amigos, necesito algo de su ayuda con una migración.
La tabla a la que quiero megrar hay muchos fereign key y hasta un detalle, hasta ahora se que la sentencias es:
Código SQL:
Ver original
  1. LOAD DATA INFILE /home/USER/carpeta/archivo.csv
  2. INTO TABLE afiliado
  3. FIELDS TERMINATED BY ';' ENCLOSED BY ' " ';

Pero no me funciona, dejo la compocision de la tabla:
Código SQL:
Ver original
  1. FIELD          | TYPE                     | NULL | KEY | DEFAULT | Extra |
  2. +----------------+--------------------------+------+-----+---------+-------+
  3. | IdAfiliado     | INT(6) UNSIGNED ZEROFILL | NO   | PRI | NULL    |       |
  4. | idResidencia   | INT(11)                  | NO   | MUL | NULL    |       |
  5. | IdCategoria    | INT(11)                  | NO   | MUL | NULL    |       |
  6. | idNacimiento   | INT(11)                  | YES  | MUL | 0       |       |
  7. | IdTipoVivienda | INT(11)                  | YES  | MUL | 0       |       |
  8. | IdInstruccion  | tinyint(4)               | YES  | MUL | 0       |       |
  9. | idCargo        | INT(11)                  | YES  | MUL | 0       |       |
  10. | apellidos      | CHAR(40)                 | NO   |     | NULL    |       |
  11. | nombre         | CHAR(50)                 | NO   |     | NULL    |       |
  12. | DNI            | CHAR(8)                  | NO   |     | NULL    |       |
  13. | sexo           | tinyint(1)               | NO   |     | NULL    |       |
  14. | essalud        | VARCHAR(50)              | YES  |     | NULL    |       |
  15. | estadoCivil    | CHAR(20)                 | YES  |     | NULL    |       |
  16. | telefono       | CHAR(9)                  | YES  |     | NULL    |       |
  17. | foto           | VARCHAR(100)             | YES  |     | NULL    |       |
  18. | fecha          | DATE                     | NO   |     | NULL    |       |
  19. +----------------+--------------------------+------+-----+---------+-----

Y esta es la composicion del archivo csv:
Código XML:
Ver original
  1. "idAfiliado";"idResidencia";"idCategoria";"apellido";"nombre";"DNI";"sexo";"fecha"
  2. 1;1;1;"Macedo Ramírez";"Rony";"01111111";0;2007-11-22
  3. 2;1;1;"García  PuTpaña";"Ever";"01111111";0;2007-11-22

Y bueno no se que mas hacer.
__________________
Dejando una huella de mi existencia por la red en http://tiricaya.com
  #2 (permalink)  
Antiguo 22/04/2011, 12:41
Avatar de Copia  
Fecha de Ingreso: noviembre-2009
Mensajes: 309
Antigüedad: 14 años, 4 meses
Puntos: 4
Respuesta: no logro migrar datos de un csv a Mysql

hola, creo tener un avance pero aun no logro hacer la migracion.

Tengo este error:
Código SQL:
Ver original
  1. ERROR 1452 (23000): Cannot ADD OR UPDATE a child ROW: a FOREIGN KEY CONSTRAINT fails (`dbstcc2011`.`Afiliado`, CONSTRAINT `fk_Afiliado_Residencia1` FOREIGN KEY (`idResidencia`) REFERENCES `Residencia` (`idResidencia`) ON DELETE NO ACTION ON UPDATE NO ACTION)

Bien no sabria explicar el porque, idResidencia es una llave foranea, y como no tengo la direccion de todos los registros que quiero poner le puse un valor 1 para todos los registro..
__________________
Dejando una huella de mi existencia por la red en http://tiricaya.com
  #3 (permalink)  
Antiguo 22/04/2011, 15:12
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: no logro migrar datos de un csv a Mysql

Cita:
Bien no sabria explicar el porque, idResidencia es una llave foranea, y como no tengo la direccion de todos los registros que quiero poner le puse un valor 1 para todos los registro..
...pero no creaste un registro número 1 en la tabla referida...
El tema es relativamente sencillo: Primero se cargan las tablas base primero (las que no poseen FK y son usadas como FK en otras).
El tema es que necesitas que esos valores existan en su tabla destino siempre, antes del uso del LOAD DATA, o de lo contrario el sistema no funcionará.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 22/04/2011, 16:06
Avatar de Copia  
Fecha de Ingreso: noviembre-2009
Mensajes: 309
Antigüedad: 14 años, 4 meses
Puntos: 4
Respuesta: no logro migrar datos de un csv a Mysql

Gracias por responder, este si cree el registro indicado y no se porque me sigue dando errores.

Ahora otro tema es que defini algunas llaves foraneas como null, osea que acepten valores nulos, pero dan error.
__________________
Dejando una huella de mi existencia por la red en http://tiricaya.com
  #5 (permalink)  
Antiguo 22/04/2011, 16:18
Avatar de Copia  
Fecha de Ingreso: noviembre-2009
Mensajes: 309
Antigüedad: 14 años, 4 meses
Puntos: 4
Respuesta: no logro migrar datos de un csv a Mysql

Disculpen el doble post.
Pero vi algunos errores en los nombres de columnas en el csv, los corregi pero aun tengo el mismo error, mientras que en la base de datos llene con un registro todas las tablas involucradas con la Tabla Afiliado
Ahora tengo el archivo asi:
Código XML:
Ver original
  1. "IdAfiliado","IdCategoria","idNacimiento","IdTipoVivienda","IdInstruccion","idCargo","idResidencia","apellidos","nombre","DNI","sexo","essalud","estadoCivil","telefono","foto","fecha"
  2. 1,1,1,1,1,1,1,"Macedo Ramírez","Rony","01147089",0,1,"casado",521690,"/",2007-11-22
  3. 2,1,1,1,1,1,1,"García  PuTpaña","Ever","01146161",0,1,"casado",521690,"/",2007-11-22
He notado que no hay ningun caracter que denote el salto de linea.

Como sigo teniendo tengo el mismo error:
Código SQL:
Ver original
  1. ERROR 1452 (23000): Cannot ADD OR UPDATE a child ROW: a FOREIGN KEY CONSTRAINT fails (`dbstcc2011`.`Afiliado`, CONSTRAINT `fk_Afiliado_Nacimiento1` FOREIGN KEY (`idNacimiento`) REFERENCES `Nacimiento` (`idNacimiento`) ON DELETE NO ACTION ON UPDATE NO ACTION)

lo que hize fue coger el primer registro del csv y lo modifique para hacerlo un insert into y no huvo ningun error:
Código SQL:
Ver original
  1. INSERT INTO Afiliado(IdAfiliado,IdCategoria,idNacimiento,IdTipoVivienda,IdInstruccion,idCargo,idResidencia,apellidos,nombre,DNI,sexo,essalud,estadoCivil,telefono,foto,fecha) VALUES(1,1,1,1,1,1,1,"Macedo Ramírez","Rony","01147089",0,1,"casado",521690,"/",2007-11-22);
__________________
Dejando una huella de mi existencia por la red en http://tiricaya.com
  #6 (permalink)  
Antiguo 23/04/2011, 11:51
Avatar de Copia  
Fecha de Ingreso: noviembre-2009
Mensajes: 309
Antigüedad: 14 años, 4 meses
Puntos: 4
Respuesta: no logro migrar datos de un csv a Mysql

hola, bueno ya solucione esto, y lo que hize fue hacer un gran insert into.

No se porque no pude hacer la migración, no se porque habia problemas con las llaves foraneas.

Solo hubo alguno errores en ese gran insert into, dos campos estaban vacios y puede que eso haya sido el error, pero aun asi no eran llaves foraneas.
__________________
Dejando una huella de mi existencia por la red en http://tiricaya.com

Etiquetas: csv, migrar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:07.