From: | Jaime Casanova <systemguards(at)gmail(dot)com> |
---|---|
To: | Luis Fernando Curiel Cabrera <lcuriel(at)gmail(dot)com> |
Cc: | Mario Gonzalez <gonzalemario(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Ultimo Id |
Date: | 2005-11-22 21:53:18 |
Message-ID: | c2d9e70e0511221353j327c8f13kace3e4bc15330833@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On 11/22/05, Luis Fernando Curiel Cabrera <lcuriel(at)gmail(dot)com> wrote:
> Ye tengo una duda, para mandar llamar al currval y el nextval ¿debo hacerlo
> dentro de una funcion?
>
> function xxx() ....
> ......
> insert ()
> next_val = nextval('sequence_name')
> last_id=currval('sequence_name')
> ......
>
>
mmm???
imagina esta tabla:
CREATE TABLE foo (col1 serial primary key);
INSERT INTO foo VALUES (DEFAULT);
select currval('foo_col1_seq'); --retorna 1
INSERT INTO foo VALUES (nextval('foo_col1_seq'));
select currval('foo_col1_seq'); --retorna 2
esto lo puedes hacer en plpgsql, claro que tambien lo puedes hacer
asignando a una variable el nextval... construyendo el INSERT desde tu
aplicacion y luego ejecutando un select currval() desde tu
aplicacion...
No hay necesidad de hacerlo todo en una funcion de postgres (a menos
que tengas pg_pool en medio, o al menos me parece que con pg_pool en
medio si necesitarias hacerlo todo en una sola funcion... a menos que
tengas una transaccion corriendo, Alvaro?)
--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)
From | Date | Subject | |
---|---|---|---|
Next Message | Guillermo O. Burastero | 2005-11-22 22:16:45 | Fwd: Ultimo Id |
Previous Message | Luis Fernando Curiel Cabrera | 2005-11-22 21:28:10 | Re: Ultimo Id |