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 |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
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
>
From | Date | Subject | |
---|---|---|---|
Next Message | fulanito detal | 2007-10-23 15:05:34 | Marcas de agua en tablas??? |
Previous Message | Martin Marques | 2007-10-23 12:36:40 | Conexion a servidor Postgresql 8.1 y 8.2 |