sql >> Database >  >> RDS >> PostgreSQL

Hoe kom ik erachter of een sequentie in deze sessie is geïnitialiseerd?

Craig, a_horse en pozs hebben informatie verstrekt die u kan helpen de principes van het gebruik van reeksen te begrijpen. Afgezien van de vraag hoe je het gaat gebruiken, is hier een functie die de huidige waarde van een reeks retourneert als deze is geïnitialiseerd of anders nul is.

Als een reeks seq is nog niet geïnitialiseerd, currval(seq) roept uitzondering op met 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. MYSQl optimaliseert tabel met blogberichten met opmerkingen

  2. AutoCompleteTextView met MySQL-gegevens

  3. PHP wat er gebeurt als een string het dubbele is van mysqli_real_escape_string

  4. hoe u een afteltimer kunt maken voor de biedwebsite