Sequences in postgresql

În DBMS PostgreSQL, secvențele (SEQUENCE [1]) sunt folosite pentru a obține valori consecutive unice.

Sintaxa generală pentru crearea unei secvențe este:

Exemplu de sarcină: trebuie să creați un contor pentru o cheie unică în tabelul de conținut. Sintaxa poate fi după cum urmează:

În acest exemplu, un element INCREMENT opțional [BY] a fost setat 1. Acest punct de control ce număr pentru a adăuga ultimul element al secvenței pentru a obține noi. Valoarea implicită este 1.

Elementele NO MINVALUE și NO MAXVALUE elimină constrângerile privind valorile maxime și minime ale elementului de secvență.

Clauza opțională CACHE a fost setată la 1. Acest element monitorizează numărul următoarelor elemente de secvență predefinite. Valoarea implicită este 1.

PostgreSQL acceptă, de asemenea, tipurile de date SERIAL și BIGSERIAL. Se creează automat o secvență. De exemplu:

tradus automat în:

O secvență creată automat are un nume al formularului <таблица>_<поле_serial>_seq, unde tabela și domeniul_serial sunt, respectiv, nume de tabele și câmpuri cu tipul SERIAL.

Funcții pentru lucrul cu secvențe:

  • currval (regclass) - returnează rezultatul ultimului apel la nextval () pentru secvența dată
  • lastval () - returnează rezultatul ultimului apel nextval ()
  • nextval (regclass) - generează un nou element al secvenței specificate și îl returnează
  • setval (regclass, bigint [, boolean]) - modifică valoarea curentă a secvenței și o returnează. Ultimul parametru opțional is_alled indică următorul apel la nextval ()

Capcanele:

  1. Când ștergeți înregistrările în numerotare, apar pauze. Rezolvarea problemei: nu necesită intervenție.
  2. Este posibilă inserarea incorectă a înregistrării cu numărul SEQUENCE care nu este încă folosit. De exemplu:

Ultima solicitare va provoca o eroare. valoarea cheie cheie primară generată automat va fi deja prezentă în tabel.

  • Aflați valoarea următorului element al secvenței:

Sequences in postgresql

  • Găsiți valoarea maximă a indicelui din tabel:

Sequences in postgresql

  • Măriți valoarea "contorului" dacă este necesar:

Sequences in postgresql

  • Verificați rezultatul acțiunilor dvs.:

Sequences in postgresql

Articole similare