Craig、a_horse、およびpozsは、シーケンスの使用の原則を理解するのに役立つ情報を提供しています。どのように使用するかという質問とは別に、シーケンスが初期化されている場合はシーケンスの現在の値を返し、そうでない場合はnullを返す関数を次に示します。
シーケンスがseq
の場合 まだ初期化されていません、currval(seq)
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')