Craig, a_horse og pozs har givet information, som kan hjælpe dig med at forstå principperne for brug af sekvenser. Bortset fra spørgsmålet, hvordan vil du bruge det, er her en funktion, der returnerer den aktuelle værdi af en sekvens, hvis den er blevet initialiseret eller null på anden måde.
Hvis en sekvens seq
er ikke blevet initialiseret endnu, currval(seq)
rejser undtagelse med 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')