| 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: | Whole Thread | Raw Message | 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 |