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

mysql: insretar datos a uabla muy grande

Estas en el tema de mysql: insretar datos a uabla muy grande en el foro de Bases de Datos General en Foros del Web. Hola a tod@s, tengo un problema-duda con mysql: El asunto es el siguinte, * programando en Php * tengo una tabla relacional, tipo innodb, la ...
  #1 (permalink)  
Antiguo 08/04/2005, 14:08
 
Fecha de Ingreso: abril-2005
Mensajes: 16
Antigüedad: 19 años, 1 mes
Puntos: 0
mysql: insertar datos a una tabla muy grande

Hola a tod@s, tengo un problema-duda con mysql:
El asunto es el siguinte,
* programando en Php
* tengo una tabla relacional, tipo innodb, la cual tiene mas de 110 campos, la mayoria de ellos relacionados.

A la hora de hacer la insercion de los datos (que los tengo casi todos en un array ) no se como hacerlo.
¿ como construyo la sentencia sin necesidad de hacer un insert larguisimo
(Supongo que me tocaria listar cada uno de los campos en el insert) y eso me parece algo complicadisimo ,caso imposible dada la cantidad
de registros.
una opcion que se me ocurrio fue hacer el insert por partes, por ejemplo en un ciclo "for" pero no he podido ...
supongo que por la integridad referencial.

que puedo hacer? Se pueden hacer inserts parciales a campos selectivos en una tabla referencial?

o puedo construir la sentencia por partes?

otra que se me ocurre es hacer es una tabla temporal identica a la que tengo pero no referenciada, hacer los inseerts por partes
y despues de tener todos los campos gestionados copiar dicha tabla en la otra.
Eso es posible? si es asi como puedo "fotocopiar" una tabla temporal e insertarla en una permante?

Última edición por David Arcila; 11/04/2005 a las 09:20
  #2 (permalink)  
Antiguo 08/04/2005, 14:12
 
Fecha de Ingreso: julio-2003
Ubicación: Colombia
Mensajes: 591
Antigüedad: 20 años, 9 meses
Puntos: 7
Hola David, pues yo haria lo del ciclo... si quieres postea tu codigo, y el error que te sale, y te ayudo....
yo he hecho varios inserts y updates en la forma como tu lo propones y no hay problema...
Chaop!
  #3 (permalink)  
Antiguo 11/04/2005, 07:23
 
Fecha de Ingreso: abril-2005
Mensajes: 16
Antigüedad: 19 años, 1 mes
Puntos: 0
Gracias luchope por responder,
el insert que hago es: 'insert into pedidos (estado_pedido) values ("'.$session.'")'
El error que sale es:counter INSERT error: 1216, Cannot add or update a child row: a foreign key constraint fails.

La idea es hacer un insert pimero para los demas datos poderlos insertar en el lugar adecuado con un where.....

los datos que tengo en un array ya los estoy insertando en un ciclo, pero en una tabla diferente, pero casi identica a la que necesito insertar, la unica diferencia es que no es tipo innodb y los campos no son "NOT NULL"..

La idea es que despues de tener todos los datos gestionados correctamente, hacer una consulta a la tabla temporal e insertarla en la tabla permante....

estoy muy errado? hay una mas facil?...me hice entender??

Gracias
  #4 (permalink)  
Antiguo 11/04/2005, 09:07
 
Fecha de Ingreso: julio-2003
Ubicación: Colombia
Mensajes: 591
Antigüedad: 20 años, 9 meses
Puntos: 7
Código PHP:
El error que sale es:counter INSERT error1216Cannot add or update a child rowa foreign key constraint fails
David Arcila, ese error no es problema del script, sino de una integridad referencial que ya tienes definida, para ver como estan referenciadas las tablas lo puedes ver con

Código PHP:
show create table nombre_de_la_tabla 
Chaop!
  #5 (permalink)  
Antiguo 11/04/2005, 09:22
 
Fecha de Ingreso: abril-2005
Mensajes: 16
Antigüedad: 19 años, 1 mes
Puntos: 0
si, a esa conclusion he llegado, pero, entonces que opciones tengo para hacer el insert?
  #6 (permalink)  
Antiguo 11/04/2005, 09:28
 
Fecha de Ingreso: julio-2003
Ubicación: Colombia
Mensajes: 591
Antigüedad: 20 años, 9 meses
Puntos: 7
Mira el show create.... y deduce entonces cual es la tabla "padre", de esa form apodras hacer los inserts...

Chaop!
  #7 (permalink)  
Antiguo 12/04/2005, 06:30
 
Fecha de Ingreso: abril-2005
Mensajes: 16
Antigüedad: 19 años, 1 mes
Puntos: 0
luchope, el campo que intento insertar datos no tiene padre...los demas si, pero este no, que podra ser?

Gracias
  #8 (permalink)  
Antiguo 12/04/2005, 15:53
 
Fecha de Ingreso: abril-2005
Mensajes: 16
Antigüedad: 19 años, 1 mes
Puntos: 0
Bien, despues de mucho tratar he logrado hacer la incercion de registros. Para encontrar una pista sobre el error :
mysql> show innodb status;

por alli encontre que me hacia falta insertar un registro (1 de 104 !! grrr) arreglado esto ...muerto el asunto.

cabe aclarar que de todas formas utilizé un tabla temporal no relacional en la cual inserto los datos de manera ciclica ( un "for" funciona bien) y despues de tenerlos toditos gestionados, la consulto, creo el insert y los meto en la tabla permante de una sola tacada, y al fina borro la tabla temporal..

gracias a luchope por responder.
David
  #9 (permalink)  
Antiguo 12/04/2005, 18:14
 
Fecha de Ingreso: julio-2003
Ubicación: Colombia
Mensajes: 591
Antigüedad: 20 años, 9 meses
Puntos: 7
je je me alegro que ta haya ido bien con ese chicharron...

Chaop!
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 10:08.