Il mio obiettivo è ottenere automaticamente un campo chiave primaria inserito quando si inserisce una nuova riga nella tabella.currval non è stato ancora definito questa sessione, come ottenere sequenze multisessione?
Come ottenere una sequenza da una sessione all'altra in 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
Lo scopo di una sequenza è di avere una sessione locale. Non è possibile "consegnare" il currval a un'altra sessione. Perché pensi che ne hai bisogno? Perché non fare tutto in un'unica transazione? –
@a_horse_with_no_name perché ho due sessioni aperte contemporaneamente: una amministratore e una di produzione. Quindi devo avere due sessioni separate. –
perché non creare una singola sequenza e quindi condividerla tra le due sessioni? Ricevono id unici, lavoro svolto. –