Optionen zum Abrufen des aktuellen (zum Zeitpunkt der Ausführung einer Abfrage) Sequenzwerts
Wie ist es möglich, den aktuellen Wert Sequenz in postgresql 8.4?
Hinweis: ich brauche den Wert für die irgendeine Art von Statistik, nur abrufen und speichern. Nichts im Zusammenhang mit der Parallelität und race-conditions im Fall von manuell Inkrementieren es ist nicht relevant für die Frage.
Hinweis 2: Die Sequenz wird gemeinsam über mehrere Tabellen
Hinweis 3: currval
wird nicht funktionieren, weil:
- Return-Wert zuletzt abgerufen nextval für diese Sequenz in der aktuellen Sitzung
ERROR: currval of sequence "<sequence name>" is not yet defined in this session
Meine aktuelle Idee: ist zu analysieren, DDL -, das ist komisch,
InformationsquelleAutor der Frage zerkms | 2013-02-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie verwenden:
Update:
dies ist dokumentiert in der CREATE SEQUENCE Aussage:
InformationsquelleAutor der Antwort Daniel Vérité
Wenn die Sequenz, die verwendet wird für eine eindeutige id in einer Tabelle, können Sie einfach tun Sie dies:
Der effizienteste Weg, obwohl postgres-spezifisch ist:
obwohl dies technisch gibt den zuletzt generierten Wert durch den Aufruf
nextval('mysequence')
die nicht unbedingt verwendet vom Anrufer (und wenn ungenutzt lassen würde, Lücken in einer auto-Schritten-id-Spalte).InformationsquelleAutor der Antwort Bohemian