currval
ще върне последната генерирана стойност за последователността в текущата сесия. Така че, ако друга сесия генерира нова стойност за последователността, вие все още можете да извлечете последната стойност, генерирана от ВАШАТА сесия, избягвайки грешки.
Но за да получите последната генерирана стойност за всяка сесия, можете да използвате горното:
SELECT last_value FROM your_sequence_name;
Бъдете внимателни, ако стойността е била използвана от друга сесия с неосъществена (или прекратена) транзакция и използвате тази стойност като референтна, може да получите грешка. Дори след получаване на тази стойност, тя може вече да е остаряла. Обикновено хората просто се нуждаят от currval
или дори връщането на setval
.