Craig, a_horse och pozs har tillhandahållit information som kan hjälpa dig att förstå principerna för att använda sekvenser. Bortsett från frågan hur ska du använda den, här är en funktion som returnerar aktuellt värde för en sekvens om den har initierats eller null på annat sätt.
Om en sekvens seq
har inte initierats ännu, currval(seq)
höjer undantag 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')