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:
- Ha törli rekordok számozási előfordulhat szünetek. A megoldás: nem igényel beavatkozást.
- 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:
- Tudja meg a maximális értéket az index az alábbi táblázat tartalmazza:
- Értékének növelése „számláló” szükség esetén:
- Ellenőrizze a tetteik eredménye: