PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да разбера дали последователност е инициализирана в тази сесия?

Craig, a_horse и pozs предоставиха информация, която може да ви помогне да разберете принципите на използване на последователности. Освен въпроса как ще я използвате, ето една функция, която връща текущата стойност на последователност, ако е била инициализирана или нула в противен случай.

Ако последователност 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')


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Връзка грешка не съществува

  2. Свържете се с отдалечен postgresql сървър на Amazon ec2

  3. PG::Грешка в клаузата GROUP BY

  4. Как да преброим група по заявка в NodeJS Sequelize

  5. Намерете пропорцията на всеки X, състоящ се от Y в PostgreSQL?