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

copiar registro menos un campo.

Estas en el tema de copiar registro menos un campo. en el foro de PostgreSQL en Foros del Web. Tengo una tabla con varias columnas y una de ellas es un serial que va generando. CREATE TABLE peticiones ( ... "ID_PETICION" integer NOT NULL ...
  #1 (permalink)  
Antiguo 14/04/2009, 09:34
 
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 352
Antigüedad: 16 años, 2 meses
Puntos: 5
copiar registro menos un campo.

Tengo una tabla con varias columnas y una de ellas es un serial que va generando.

CREATE TABLE peticiones
(
...

"ID_PETICION" integer NOT NULL DEFAULT nextval('"peticiones_ID_peticiones_seq"'::regclass ),

...

)
WITH (OIDS=FALSE);
ALTER TABLE peticiones OWNER TO postgres;

Quiero conseguir hacer una copia de un registro, pero con un nuevo "ID_PETICION", todo lo demás igual.

¿Sabéis como hacerlo?
  #2 (permalink)  
Antiguo 14/04/2009, 10:10
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 registro menos un campo.

Una copia en donde?
En un archivo, o en otra tabla?
Solo de un registro o un conjunto de registros?

Si es para una tabla y para un registro prueba con:

Código sql:
Ver original
  1. INSERT INTO nuevatabla VALUES(nuevo_valor, (SELECT viejo_valor1 FROM tabla_vieja WHERE...),
  2. (SELECT viejo_valor2 FROM tabla_vieja WHERE...),(SELECT viejo_valor3 FROM tabla_vieja WHERE...)
  3. ,....(SELECT viejo_valorN FROM tabla_vieja WHERE...));
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 14/04/2009, 10:33
 
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 352
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: copiar registro menos un campo.

Si tengo un registro en peticiones:

id -- nombre -- apellidos
1 -- jose -- garcia cespedes

Querria conseguir

2 -- jose -- garcia cespedes

pero claro la tabla tiene 50 columnas...y quiero copiar todas menos el id...
a ver si habia algo más secillo que lo que propones...:D
  #4 (permalink)  
Antiguo 14/04/2009, 11:05
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 registro menos un campo.

Una opción rápida es tirar toda la consulta a un archivo.
En el archivo cambias el valor que quieres y vuelves a importarla en la nueva tabla.

Para esto puedes hacer uso de copy.

COPY (select *from tabla where codigo=23) to 'ruta';

Despues que termines, lo importas nuevamente con:

COPY tabla_nueva FROM 'archivo_modificado';

Mas información:
http://www.postgresql.org/docs/curre.../sql-copy.html
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
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:50.