Mi objetivo es hacer que se inserte automáticamente un campo de clave principal al insertar una nueva fila en la tabla.currval aún no se ha definido esta sesión, ¿cómo obtener secuencias de múltiples sesiones?
¿Cómo pasar una secuencia de una sesión a otra en PostgreSQL?
[email protected]:/home/yves$ psql -d test
Mot de passe :
psql (8.4.13)
Saisissez « help » pour l''aide.
test=> create sequence test001 start 10;
CREATE SEQUENCE
test=> select currval('test001');
ERREUR: la valeur courante (currval) de la séquence « test00 » n''est pas encore définie dans cette session
--- current value not yet defined this session (???)
test=> select setval('test001', 10);
setval
--------
10
(1 ligne)
test=> select currval('test00');
currval
---------
10
(1 ligne)
test=> \q
[email protected]:/home/yves$ psql -d test
Mot de passe :
psql (8.4.13)
Saisissez « help » pour l''aide.
test=> select currval('test001');
ERREUR: la valeur courante (currval) de la séquence « test00 » n''est pas encore définie dans cette session
Todo el propósito de una secuencia es tenerla como sesión local. No puede "entregar" el currval a otra sesión. ¿Por qué crees que lo necesitas? ¿Por qué no hacer todo en una sola transacción? –
@a_horse_with_no_name porque tengo dos sesiones abiertas al mismo tiempo: una de administrador y una de producción. Entonces tengo que tener dos sesiones separadas. –
¿por qué no crear una secuencia única y luego simplemente compartirla entre las dos sesiones? Reciben identificaciones únicas, trabajo hecho. –