Craig, a_horse en pozs hebben informatie verstrekt die u kan helpen de principes van het gebruik van reeksen te begrijpen. Afgezien van de vraag hoe je het gaat gebruiken, is hier een functie die de huidige waarde van een reeks retourneert als deze is geïnitialiseerd of anders nul is.
Als een reeks seq
is nog niet geïnitialiseerd, currval(seq)
roept uitzondering op met sqlstate 55000.
create or replace function current_seq_value(seq regclass)
returns integer language plpgsql
as $$
begin
begin
return (select currval(seq));
exception
when sqlstate '55000' then return null;
end;
end $$;
select current_seq_value('my_table_id_seq')