currval wurde in dieser Session noch nicht definiert, wie man Multi-Session-Sequenzen bekommt?

Mein Ziel ist es, eine primary key-Feld automatisch eingefügt, wenn das einfügen der neuen Zeile in der Tabelle.

Wie man eine Sequenz gehen von Sitzung zu Sitzung in PostgreSQL?

 doubleemploi@hanbei:/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
 test@hanbei:/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
Kommentar zu dem Problem - Öffnen
Der ganze Zweck einer Sequenz ist, haben es die session lokal. Sie kann nicht "von hand" die currval über zu einer anderen Sitzung. Warum denken Sie, dass Sie das brauchen? Warum nicht alles in einer einzigen Transaktion? Kommentarautor: a_horse_with_no_name
@a_horse_with_no_name da habe ich zwei session gleichzeitig geöffnet : ein admin und eine Produktion. Also ich habe zwei getrennte Sitzungen. Kommentarautor: MUY Belgium
warum nicht eine einzelne Sequenz und dann einfach teilen Sie Sie zwischen zwei Sitzungen? Sie erhalten eindeutige ids, fertig. Kommentarautor: Scott Marlowe

InformationsquelleAutor der Frage MUY Belgium | 2012-09-18

Schreibe einen Kommentar