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

Re: Serial / Secuencia

From: guillermo(dot)munoz(at)grupotekne(dot)com(dot)ar
To: MIGUEL CANCHAS <mcanchas(at)tsr(dot)com(dot)pe>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Serial / Secuencia
Date: 2007-10-23 14:57:13
Message-ID: 20071023115713.snf49q2qgc0kw44w@webmail.vit4b.com (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Quoting MIGUEL CANCHAS <mcanchas(at)tsr(dot)com(dot)pe>:

> Amigos hace un tiempo atras consulte sobre contadores en las tablas para
> poder realizar codigos unicos(Primary Key) y enlazarlos en Cabecera -
> Detalle, bien empece a usar campos SERIAL, cuando grabo genera
> automaticamente el codigo o correlativo, hasta alli todo bien, lo que
> necesito es como devolver el codigo que generó cuando se realizó la
> grabación.
>
> Estaba viendo como hacerlos con (esto es otro modo)
>
> CREATE SEQUENCE "public"."serial"
>    INCREMENT 1  MINVALUE 0
>    MAXVALUE 9223372036854775807  START 1
>   CACHE 1;
>
> entonces desde mi sistema haria algo como :
>
> SELECT nextval('serial');
>
> y obtendria el codigo siguiente y tomando este valor lo insertaria en mis
> tablas.
>
> Que les parece ? estará bien ? cual de las 2 me recomiendan ?
>

te recomiendo que cuando crees la tabla establescas el valor por defecto del
campo id la secuencia (serial)
   CREATE TABLE femeba_dba.test
   (
     id_test integer NOT NULL DEFAULT nextval('test_seq'::regclass),
     ...
   CONSTRAINT pkprocesos PRIMARY KEY (id_proceso)
   );
entoces cuando insertes en la tabla ya te hace el nextval y ya te deja obtener
el currval.
despues para recuperar el valor insertado es con la sentecia:
   select currval('test_seq');

tene en cuenta que si no haces un nextval, por lo menos dentro de una misma
transaccion, el currval te da error

Saludos, espero te sirva
Guillermo Muñoz



>
> Gacias
>
> Miguel Canchas
>



In response to

Responses

pgsql-es-ayuda by date

Next:From: fulanito detalDate: 2007-10-23 15:05:34
Subject: Marcas de agua en tablas???
Previous:From: Martin MarquesDate: 2007-10-23 12:36:40
Subject: Conexion a servidor Postgresql 8.1 y 8.2

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