PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana cara mengetahui apakah suatu urutan diinisialisasi dalam sesi ini?

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')


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres upsert:membedakan antara baris baru dan yang diperbarui

  2. tidak dapat menghapus objek karena batasan kunci asing

  3. Perintah SALIN dan kesalahan baris baru

  4. ~/.psqlrc file untuk DBA

  5. Fungsi dengan kueri SQL tidak memiliki tujuan untuk data hasil