Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-es-ayuda by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group