Sequence in postgresql

A PostgreSQL DBMS egymást követő egyedi értékeket alkalmazva (SEQUENCE [1]).

Az általános szintaxis létrehozásának szekvenciája:

Példa probléma: annak szükségességét, hogy hozzon létre egy számlálót az egyedi kulcsot a tartalom táblázatban. A szintaxis tűnhet az alábbiak szerint:

Ebben a példában egy opcionális tétel növekmény [BY], amelynek 1. Ez a pont szabályozású milyen számot adni az utolsó elem a sorozat megszerzésére irányuló új. Az alapértelmezett érték - 1.

Bekezdések NO és NO MINVALUE MAXVALUE távolítsa el korlátozásokat a minimális és maximális értékek a szekvencia elemet.

Választható kikötés gyorsítótár beállítása 1. Ez a tétel követi az elemek számát a következő, előre meghatározott sorrendben. Az alapértelmezett érték - 1.

A PostgreSQL támogatja az adatok típusát soros és BIGSERIAL. Ez automatikusan létrehoz egy sorrendet. Például:

automatikusan lefordított:

Az automatikusan létrehozott szekvencia a következő nevet <таблица>_<поле_serial>_seq, ahol egy asztal és pole_serial - rendre a nevét a táblák és mezők a típusú soros.

Funkcióval rendelkezik húrok:

  • currval (regclass) - visszaadja az eredményt az utolsó hívás nextval () a megadott sorrendben
  • lastval () - visszaadja az eredményt az utolsó hívás nextval ()
  • nextval (regclass) - létrehoz egy új eleme egy előre meghatározott sorrendben, és visszaadja
  • setval (regclass, bigint [, logikai]) - megváltoztatja az aktuális értékét a sorozatot, és visszaadja azt. Utolsó is_called opcionális paraméter szükségességét jelzi hívás poleduyuschego nextval ()

buktatók:

  1. Ha törli rekordok számozási előfordulhat szünetek. A megoldás: nem igényel beavatkozást.
  2. Lehetséges hibás behelyezését felvétel nem használt számok ebben a sorrendben. Például:

Az utolsó kérés sikertelen lesz, mert automatikusan létrehozott elsődleges kulcs értéke már jelen van a táblázatban.

  • Ellenőrizze az értéket a következő elem szekvenciák:

Sequence in postgresql

  • Tudja meg a maximális értéket az index az alábbi táblázat tartalmazza:

Sequence in postgresql

  • Értékének növelése „számláló” szükség esetén:

Sequence in postgresql

  • Ellenőrizze a tetteik eredménye:

Sequence in postgresql

Kapcsolódó cikkek