Craig, a_horse et pozs ont fourni des informations qui peuvent vous aider à comprendre les principes d'utilisation des séquences. Outre la question comment allez-vous l'utiliser, voici une fonction qui retourne la valeur courante d'une séquence si elle a été initialisée ou null sinon.
Si une séquence seq
n'a pas encore été initialisé, currval(seq)
déclenche une exception avec 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')