O
currval
retornará o último valor gerado para a sequência na sessão atual. Portanto, se outra sessão gerar um novo valor para a sequência você ainda poderá recuperar o último valor gerado pela SUA sessão, evitando erros. Mas, para obter o último valor gerado em qualquer sessão, você pode usar o acima:
SELECT last_value FROM your_sequence_name;
Tenha cuidado, se o valor foi usado por outra sessão com uma transação não confirmada (ou abortada) e você usar esse valor como referência, poderá receber um erro. Mesmo depois de obter esse valor, ele já pode estar desatualizado. Geralmente as pessoas só precisam do
currval
ou até mesmo o retorno de setval
.