> -----Mensaje original-----
> De: Conrado Blasetti
> 
> Gente, buenos días.
> 
> Consulta, tengo un archivo plano para subir a una tabla con 
> COPY, el plano tiene N columnas pero la tabla como primer 
> campo tiene el ID propio de tabla del tipo serial, ej:
> 
> 
> Tabla
> 
> Id serial,
> Campo1,
> Campo2,
> Campo3,
> CampoN
> 
> Plano
> 
> Campo1,
> Campo2,
> Campo3,
> CampoN
> 
> La consulta es, es posible decirle al COPY de alguna manera 
> que el primer campo no viene informado en el plano y tiene 
> que ir a buscar la sequence?
> 
> Si no se puede, no problem, creo una tabla X con la misma 
> estructura del plano y luego relleno la final por sql.
> 

Es posible. 
Primero tenés que setear el default de la columna para que tome el valor de
la secuencia:

ALTER TABLE mi_tabla
   ALTER COLUMN columna_serial SET DEFAULT nextval('mi_secuencia');

Luego en el COPY directamente no menciones esa columna. 
Al hacer la inserción Postgres le asignará el valor de la secuencia.

Saludos,
Fernando.


--
TIP 7: no olvides aumentar la configuración del "free space map"

Responder a