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

Copiar ciertas columnas de una tabla a otra... se puede?

Estas en el tema de Copiar ciertas columnas de una tabla a otra... se puede? en el foro de PostgreSQL en Foros del Web. Hola a todos, cómo van?? Será posible copiar los datos de una columna de una tabla y pasarlos a otra columna de otra tabla? Les ...
  #1 (permalink)  
Antiguo 24/03/2009, 13:57
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 18 años, 4 meses
Puntos: 70
Copiar ciertas columnas de una tabla a otra... se puede?

Hola a todos, cómo van??

Será posible copiar los datos de una columna de una tabla y pasarlos a otra columna de otra tabla?

Les explico con un ejemplo, tal como está en una DB que intento optimizar (podrán observar la falta de normalización):

Tabla1
----------------------
nov_id (PK)
nov_fecha
nov_cliente
nov_estado

Tabla2
----------------------
nov_id(FK)
reporte
digital
papel
nocturno
diurno

Eso estaría bien si "Tabla2" fuera "detalles" de Tabla1, osea si hubieran n detalles, pero no es así, siempre es un solo registro.

Mi idea es "unir" esas dos tablas:

Tabla1
----------------------
nov_id (PK)
nov_fecha
nov_cliente
nov_estado
reporte
digital
papel
nocturno
diurno

Al unirlas, necesitaría pasar los datos de "Tabla2" a "Tabla1", y esa es mi duda... cómo lograría hacer eso por medio de Postgres?

Espero me entiendan...

Gracias de antemano
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #2 (permalink)  
Antiguo 24/03/2009, 14:44
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 10 meses
Puntos: 360
Respuesta: Copiar ciertas columnas de una tabla a otra... se puede?

Un saludo carxl

En primer lugar debes crear las columnas adicionales en tabla1 que se encuentran en tabla2.
(Esto funciona solo si el numero de registros en tabla1 corresponde al numero de registros en tabla2)
Si es asi prueba con esto:

Código postgresql:
Ver original
  1. update tabla1 set reporte = (select reporte from tabla2), digital = (select digital from tabla2), papel = (select papel from tabla2), nocturno = (select nocturno from tabla2), diurno = (select diurno from tabla2);

Espero te sirva.
  #3 (permalink)  
Antiguo 24/03/2009, 15:01
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 18 años, 4 meses
Puntos: 70
Respuesta: Copiar ciertas columnas de una tabla a otra... se puede?

Hola huesos52, gracias por la respuesta man

Es algo que había pensado, pero pasa que no son iguales los números de registro de una frente a otro, son desiguales.

Podría entrar a hacer una subconsulta no? que tal esto?

Código sql:
Ver original
  1. UPDATE tabla1 SET reporte = (SELECT reporte FROM tabla2), digital = (SELECT digital FROM tabla2), papel = (SELECT papel FROM tabla2), nocturno = (SELECT nocturno FROM tabla2), diurno = (SELECT diurno FROM tabla2) WHERE nov_id IN (SELECT nov_id FROM tabla2);

Me guio de la sintaxis de mysql pero quizás sea la misma jeje, tendrás otra opción?

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #4 (permalink)  
Antiguo 24/03/2009, 15:04
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 10 meses
Puntos: 360
Respuesta: Copiar ciertas columnas de una tabla a otra... se puede?

Lo siento, la sentencia que te dí no funciona:

esta creo q si:

Código sql:
Ver original
  1. UPDATE tabla1 SET reporte = tabla2.reporte, digital = tabla2.digital, papel = tabla2.papel, nocturno = tabla2.nocturno, diurno = tabla2.diurno FROM tabla2 WHERE tabla1.nov_id = tabla2.nov_id;

Espero esta si te funcione.

Última edición por huesos52; 24/03/2009 a las 16:13
  #5 (permalink)  
Antiguo 24/03/2009, 17:36
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 18 años, 4 meses
Puntos: 70
Respuesta: Copiar ciertas columnas de una tabla a otra... se puede?

Hola de nuevo huesos52, parece que todo va bien con lo que me pasaste, ando haciendo pruebas :p

Saludos man y gracias de nuevo
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #6 (permalink)  
Antiguo 25/02/2010, 08:02
 
Fecha de Ingreso: enero-2010
Mensajes: 2
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Copiar ciertas columnas de una tabla a otra... se puede?

hola...espero estes bien yo tengo una duda parecida pero es q necesito copiar los datos que estan en una tabla a otra especificamente de tabla personal a tabla actividad_actual solo el campo cedula


estoy trabajndo en mysql query browser

podrian ayudarme...
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 02:18.