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

Volcar datos de una tabla a otra

Estas en el tema de Volcar datos de una tabla a otra en el foro de Mysql en Foros del Web. Hola quiero volcar los datos de 2 columnas de una tabla en otras 2 tablas que tienen las mismas columnas, ¿como lo hago? Código PHP: ...
  #1 (permalink)  
Antiguo 22/02/2010, 14:05
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
Volcar datos de una tabla a otra

Hola quiero volcar los datos de 2 columnas de una tabla en otras 2 tablas que tienen las mismas columnas, ¿como lo hago?

Código PHP:
function recopilar()
    {
        
$sql "select columna1, columna2, columna3 from tabla1";
        
$result mysql_query($sql) or die("SQL Tabla1: ".mysql_error());        
    }
    
    function 
cambiar($columna1,$columna2,$columna3)
    {
        
$sql "update tabla2 set colunna2= ".$columna2.", columna3= ".$columna3." where columna1 = ".$columna1;    
        
$sql1 "update tabla3 set colunna2= ".$columna2.", columna3= ".$columna3." where columna1 = ".$columna1;
        
mysql_query($sql) or die("SQL Cambiar tabla2: ".mysql_error());
        
mysql_query($sql1) or die("SQL Cambiar tabla3: ".mysql_error());    
    }

    
$result recopilar();
    
Linea 20  ---->while($consulta mysql_fetch_assoc($result)) 
    {    
        
$columna1 $consulta[columna1];
        
$columna2 $consulta[columna2];
        
$columna3 $consulta[columna3];
    
        
cambiar($columna1,$columna2,$columna3);    
    } 

Esto me arroja:

Código PHP:
Warningmysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in ........  on line 20 
Supongo que el problema esta en llamar varias veces a la misma consulta, como lo soluciono, gracias

bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #2 (permalink)  
Antiguo 22/02/2010, 14:17
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Volcar datos de una tabla a otra

Te estas complicando bichomen

hazlo así:

Código MySQL:
Ver original
  1. insert into tabla_nueva1 select columna1,columna2 from tabla_vieja;
  2. insert into tabla_nueva2 select columna1,columna2 from tabla_vieja;

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 22/02/2010, 14:18
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
Respuesta: Volcar datos de una tabla a otra

Se me olvido indicar que las tablas 2 y 3 pueden tener mas de un registro idéntico en la columna 1 con lo que se pueden ver más de una fila afectada.


bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #4 (permalink)  
Antiguo 22/02/2010, 14:25
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
Respuesta: Volcar datos de una tabla a otra

huesos52 el problema es que las 2 tablas nuevas no son exactamente iguales de echo tienen el doble de filas que la tabla madre, para ser exactos 2 registros por cada registro en la tabla 1, por eso no puedo volcar directamente la tabla, tengo que indicarle que se cumpla la igualdad en la columna1


bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #5 (permalink)  
Antiguo 22/02/2010, 14:31
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
Respuesta: Volcar datos de una tabla a otra

Acabo de probar esto:

Código PHP:
INSERT INTO tabla_nueva1 n1 SELECT v.columna2v.columna3 FROM tabla_vieja v where n1.columna1 =  v.columna1;
INSERT INTO tabla_nueva2 n2 SELECT v.columna2v.columna3 FROM tabla_vieja v where 21.columna1 =  v.columna1
Y me devuelve:

Código PHP:
Parse errorsyntax errorunexpected T_STRING in .... on line 1 

bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #6 (permalink)  
Antiguo 22/02/2010, 14:36
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Volcar datos de una tabla a otra

Haz probado el update inner join? Te dejo un ejemplo de otro post en el que lo explico.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #7 (permalink)  
Antiguo 22/02/2010, 18:39
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
Respuesta: Volcar datos de una tabla a otra

Bueno al final funciono, el problema es que había que lanzar las sentencias por separado, supongo que poner un sleep() por en medio hubiese bastado, pero bueno probé directamente cada consulta sobre la base de datos y funciono:

Código PHP:
UPDATE tabla2 t2 INNER JOIN tabla1 t1 ON t1.consulta1 t2.consulta1 SET t2.consulta2t1.consulta2t2.consulta3t1.consulta3;
    
UPDATE tabla3 t3 INNER JOIN tabla1 t1 ON t1.consulta1 t3.consulta1 SET t3.consulta2t1.consulta2t3.consulta3t1.consulta3
¡Gracias por la ayuda!


bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #8 (permalink)  
Antiguo 06/07/2010, 19:09
 
Fecha de Ingreso: julio-2010
Mensajes: 4
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Volcar datos de una tabla a otra

Hola.
Se que esta respuesta talvez sea un pelin tarde y tal.
Tengo una página para un juego en la cual se puede usar para recuperar personajes (son 2 tablas identicas con muchas columnas).
Lo que tendrás que adaptarla si la quieres para más de 1 columna.
Te dejo que te descargues el código y te asigno las sqls.

Deberías verlo y ya juzgar por ti mismo :S
Descarga: http://www.megaupload.com/?d=Z0JTMX5M

Espero que os sirva a todos ^^

PD: Si usas un servidor privado de Conquista 2.0 (TQ Binary), esta es la web perfecta para recuperar tus PJs xD

Un saludo ;)

Etiquetas: tablas
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 11:52.