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

[SOLUCIONADO] como puedo copiar campos de una tabla a otra

Estas en el tema de como puedo copiar campos de una tabla a otra en el foro de Mysql en Foros del Web. Buenas!! pues eso.. se me habia ocurrido hacerla mediante php haciendo una consulta leyendo todos los datos e insertando en la otra tabla solo los ...
  #1 (permalink)  
Antiguo 23/05/2013, 16:15
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
Pregunta como puedo copiar campos de una tabla a otra

Buenas!!

pues eso.. se me habia ocurrido hacerla mediante php haciendo una consulta leyendo todos los datos e insertando en la otra tabla solo los que requiero pero...
antes de hacerlo de esa manera quisiera saber si existe alguna manera mas sencilla de hacerlo directamente en la base de datos

el dato es el siguiente
tengo una tabla que tiene datos generales de los usuarios

tabla usuarios:
ID_usuario
nombre
direccion
fechanacimiento
......
curp
cum
fechadealta
.. etc...

tabla bajas:
id_baja
cum
nombre
curp
fechanacimiento
fechaalta
fechabaja
motivo
status

en la primera son mas de 30 campos y en la segunda solo 9
quiero pasar solo los datos y generar los nuevos como fechabaja, no tengo problemas con el concepto tratandose de php pero serian dos consultas
y deseo optimizarlo de ser posible en una sola consulta

¿se puede hacer eso o forzozamente tendria que ser como estoy pensando en php?

se me olvidaba, despues de copiarlo necesito borrarlas, eso ya pasa con este codigo:
Código MySQL:
Ver original
  1. Delete From archivo Where rug='$buscarug'
  2.  
  3. Delete From adelantos Where rug='$buscarug'
lo que necesito es que antes de borrarlo se copien
saludos!!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!

Última edición por gnzsoloyo; 23/05/2013 a las 16:49 Razón: Codigo de programacion no permitido en foros de BBDD
  #2 (permalink)  
Antiguo 23/05/2013, 16:51
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, 5 meses
Puntos: 2658
Respuesta: como puedo copiar campos de una tabla a otra

Código MySQL:
Ver original
  1. INSERT INTO tabla1(campos)
  2. SELECT campos
  3. FROM tabla2
  4. WHERE condiciones;
Eso lo puedes encontrar en el manual de referencia:

13.2.4.1. Sintaxis de INSERT ... SELECT
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 23/05/2013, 17:25
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
Respuesta: como puedo copiar campos de una tabla a otra

Gracias por la orientacion..

voy a leer y cualquier duda la publico de nuevo..

saludos!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #4 (permalink)  
Antiguo 23/05/2013, 17:44
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
Respuesta: como puedo copiar campos de una tabla a otra

pues eh sustitudo y no funciona
hice esto:
Código MySQL:
Ver original
  1. INSERT INTO bajas(cum,nombre,fenac,curp,fealt)
  2. SELECT rug,nombre,nacimiento,cum,fegru
  3. FROM archivo
  4. WHERE STATUS='INACTIV'
y simplemente no pasa nada... no se copia la informacion

¿que estoy haciendo mal?

saludos!!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!

Última edición por gnzsoloyo; 23/05/2013 a las 18:15 Razón: Código de programación no permitido en foros de Bases de Datos.
  #5 (permalink)  
Antiguo 23/05/2013, 18:17
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, 5 meses
Puntos: 2658
Respuesta: como puedo copiar campos de una tabla a otra

Empieza por probar en phpMyadmin si la consulta funciona:
Código MySQL:
Ver original
  1. SELECT rug,nombre,nacimiento,cum,fegru
  2. FROM archivo
  3. WHERE `STATUS`='INACTIV'

Luego, ten en cuenta que usar palabras reservadas puede disparar errores sintácticos no detectables a simple vista.

Además, no estás capturando la salida de error que MySQL puede devolver, por lo que en realidad no sabes si funciona o no, o si falla por alguna razón.

Finalmente, en los foros de Bases de Datos no se permite poner código de programación. Sólo SQL.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 23/05/2013, 18:29
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
Respuesta: como puedo copiar campos de una tabla a otra

ok, bueno antes que nada disculpa por el codigo pero casi no posteo por esta zona del foro y acostumbrado a ponerlo no pense estar haciendo algo mal, no vuelve a suceder.

por otro lado te comento que si se realiza la consulta directa puesto que eh puesto para que me imprima en pantalla el resultado y si consulta pero no graba en la tabla bajas

por otro lado ¿como le pongo para capturar el error de salida?
¿ "or die" ? confirmame

de nuevo gracias por la ayuda.. saludos
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #7 (permalink)  
Antiguo 23/05/2013, 19:17
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, 5 meses
Puntos: 2658
Respuesta: como puedo copiar campos de una tabla a otra

¿Cómo haces la prueba de la consulta sola? ¿Con phpMyadmin o con otra cosa?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 23/05/2013, 19:45
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
Respuesta: como puedo copiar campos de una tabla a otra

en un script con el codigo que publique

saludos!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #9 (permalink)  
Antiguo 23/05/2013, 20:01
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
Respuesta: como puedo copiar campos de una tabla a otra

ok, ya lo logre hacer funcionar.. mi problema era una "coma" de mas

ahora sobre el mismo tema,

¿como puedo hacer que se inserte la fecha actual y una variable adicional ?

ya intente
Código MySQL:
Ver original
  1. INSERT INTO bajas(cum,nombre,fenac,curp,fealt, ceba='$fechbaj', status='A')
  2. SELECT rug,nombre,nacimiento,cum,fegru
  3. FROM archivo WHERE rug='$buscarug'

no funciona ...

alguna manera de hacer eso?

saludos!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!

Última edición por gnzsoloyo; 23/05/2013 a las 20:02 Razón: Código de programación no permitido en foros de Bases de Datos.
  #10 (permalink)  
Antiguo 23/05/2013, 20:04
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, 5 meses
Puntos: 2658
Respuesta: como puedo copiar campos de una tabla a otra

Seguro que no va a funcionar. Estas inventando una sintaxis que no existe.
Ajustate a lo que dice el manual de referencia, ningún DBMS va a reconocer otra cosa que lo que el manual indica.
Código MySQL:
Ver original
  1. INSERT INTO bajas(cum, nombre, fenac, curp, fealt, ceba, `status`)
  2. SELECT rug, nombre, nacimiento, cum, fegru, CURDATE(),  'A'
  3. FROM archivo
  4. WHERE rug='$buscarug'

Un consejo sano: Nunca jamás realices las pruebas de SQL desde scripts.
Ejecuta primero las consultas directamente en SQL desde alguna interfaz y recién cuando veas que funciona, entonces la copias y la migras al script.
Los scripts son engañosos. Esconden errores de sintaxis detrás de las variables y no permiten ver rápida y claramente los errores devueltos por MySQL, si no están muy bien programados.
Sólo puedes usarlos cuando ya tienes bastante experiencia en SQL (y a veces ni con eso).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 23/05/2013 a las 20:09
  #11 (permalink)  
Antiguo 23/05/2013, 20:22
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
Respuesta: como puedo copiar campos de una tabla a otra

ok, gracias por los consejos, realmente soy muy novato en el manejo de mysql,

a travez de phpmyadmin ¿puedo realizar las consultas y pruebas?

si tienes algun sitio que explique o manual me serviria mucho

Gracias!!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!

Etiquetas: campo, campos, insert, php, tabla
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:57.