Re: insert con serial

From: Emanuel Calvo Franco <postgres(dot)arg(at)gmail(dot)com>
To: Guillermo Villanueva <guillermovil(at)gmail(dot)com>
Cc: pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: insert con serial
Date: 2011-03-22 12:46:54
Message-ID: AANLkTimcbEy7NN0xFdT=sV++n_wRDbKvB+mkx3Ofc35a@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El día 22 de marzo de 2011 13:28, Guillermo Villanueva
<guillermovil(at)gmail(dot)com> escribió:
> Buenas, tengo una tabla donde la pk es un serial
> supongamos
> CREATE TABLE t1
> (
>   campo1 serial NOT NULL,
>   campo2 varchar(20),
>   campo3 integer,
>   CONSTRAINT t1_pkey PRIMARY KEY (campo1),
> )
> y necesito hacer un insert basado en un select sobre datos de la misma
> tabla....
> intenté:
> insert into t1 (campo2,campo3)
> select campo2,5
> from t1
> where
>    campo3 =4;
> pero no funcionó, me da clave duplicada
> cómo hago?
> Desde ya muchas gracias
> Saludos
>

He hecho la prueba y no he tenido problemas:

postgres=# CREATE TABLE t1
postgres-# (
postgres(# campo1 serial NOT NULL,
postgres(# campo2 varchar(20),
postgres(# campo3 integer,
postgres(# CONSTRAINT t1_pkey PRIMARY KEY (campo1)
postgres(# );
NOTICE: CREATE TABLE crearA¡ una secuencia implA-cita A«t1_campo1_seqA» para la
columna serial A«t1.campo1A»
NOTICE: CREATE TABLE / PRIMARY KEY crearA¡ el A-ndice implA-cito A«t1_pkeyA» pa
ra la tabla A«t1A»
CREATE TABLE
postgres=#
postgres=# insert into t1 (campo2,campo3)
postgres-# select campo2,5
postgres-# from t1
postgres-# where
postgres-# campo3 =4;
INSERT 0 0
postgres=# insert into t1(campo2,campo3) values ('pg',4);
INSERT 0 1
postgres=# insert into t1(campo2,campo3) values ('p12g',3);
INSERT 0 1
postgres=#
postgres=# insert into t1 (campo2,campo3)
postgres-# select campo2,5
postgres-# from t1
postgres-# where
postgres-# campo3 =4;
INSERT 0 1
postgres=# select * from t1;
campo1 | campo2 | campo3
--------+--------+--------
1 | pg | 4
2 | p12g | 3
3 | pg | 5
(3 filas)

--
--
              Emanuel Calvo
              Helpame.com

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Angelo Astorga 2011-03-22 13:14:06 log de postgresql !!!
Previous Message Guillermo Villanueva 2011-03-22 12:28:18 insert con serial