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

Mover datos de una tabla a otra

Estas en el tema de Mover datos de una tabla a otra en el foro de Mysql en Foros del Web. Mi problema es este: Tengo dos tablas tabla productos y la tabla respaldo que estan de esta manera productos id_producto barra nombre descripcion precio respaldo ...
  #1 (permalink)  
Antiguo 16/02/2014, 09:56
 
Fecha de Ingreso: enero-2013
Mensajes: 27
Antigüedad: 11 años, 2 meses
Puntos: 1
Pregunta Mover datos de una tabla a otra

Mi problema es este:
Tengo dos tablas tabla productos y la tabla respaldo que estan de esta manera
productos
id_producto
barra
nombre
descripcion
precio

respaldo
barra
nombre
cantidad

Como ven son diferentes tablas pero tienen en comun los campos "nombre y barra".
Lo que busco es que los datos del campo barra de la tabla "respaldo" se pasen a la tabla "productos" en el mismo campo pero cuando los "nombres" sean iguales
(el campo barra de la tabla productos esta vacio como aclaracion).

Alguna sugerencia.Este es la consulta que intente hacer pero no me funciona.
Saludos....




Código SQL:
Ver original
  1. INSERT respaldo (barra)
  2.     SELECT barra,nombre
  3.     FROM productos
  4.     WHERE productos.nombre=respaldo.nombre;
  #2 (permalink)  
Antiguo 16/02/2014, 10:48
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: Mover datos de una tabla a otra

No te funciona porque estás declarando un único campo en el INSERT de la tabla respaldo, mientras que el SELECT devuelve dos. Es decir, no coinciden la cantidad de columnas, y SQL no admite ese tipo de discrepancias. No va a "omitir" un campo por default.

Además creo que hay un error de consulta, porque si lo que quieres es actualizar el campo BARRA en la tabla RESPALDO cuando el NOMBRE ya existe, no corresponde un INSERT, sino un UPDATE:

Código MySQL:
Ver original
  1. UPDATE respaldo R, productos P
  2. WHERE R.nombre=P.nombre
  3. SET R.barra = P.barra;
Obviamente esto sirve si y sólo si todos los productos que existen en PRODUCTOS, ya tienen su correspondencia en RESPALDO. SI en RESPALDO falta alguno... ese no se incluirá, y para ello debería hacerse otro tipo de consultas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: campo, select, 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 07:11.