Craig, a_horse dan pozs telah memberikan informasi yang dapat membantu Anda memahami prinsip-prinsip menggunakan urutan. Terlepas dari pertanyaan bagaimana Anda akan menggunakannya, berikut adalah fungsi yang mengembalikan nilai urutan saat ini jika telah diinisialisasi atau null sebaliknya.
Jika urutan seq
belum diinisialisasi, currval(seq)
memunculkan pengecualian dengan 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')