logo

PostgreSQL sorozat

Ebben a részben a működését fogjuk megérteni PostgreSQL sorozat pszeudo-típus, amely lehetővé teszi számunkra, hogy meghatározzuk oszlopok automatikus növelése táblázatokban. És mi is látjuk példák a PostgreSQL Serial pszeudo-típus .

Mi az a PostgreSQL Serial pszeudotípus?

A PostgreSQL-ben van egy bizonyos típusú adatbázis-objektum-generátor, az úgynevezett Sorozatszám , ami szokott hozzon létre egy egész számok sorozatát amelyeket gyakran használnak a Elsődleges kulcs egy táblázatban.

A sorozat a segítségével generálható SOROS pszeudo-típus , miközben új táblát hozunk létre, amint azt a következő parancsban láthatjuk:

 CREATE TABLE table_name( ID SERIAL ); 

A PostgreSQL a következőket teszi, ha megadjuk a SOROS pszeudo-típus hoz ID oszlop:

karakterlánc a jsonobjecthez
  • Először is, a PostgreSQL létrehoz egy szekvenciaobjektumot, majd létrehozza a sorozat által létrehozott következő értéket az adott oszlop előre meghatározott értékeként.
  • Ezt követően a PostgreSQL javítani fogja a NOT NULL megkötés hoz ID oszlop mivel egy sorozat mindig olyan egész számot hoz létre, amely a nem nulla érték .
  • Végül a PostgreSQL biztosítja a sorozat tulajdonosát a ID oszlop; kimenetként a sorozatobjektum eltávolításra kerül, amikor a tábla ill ID oszlop le van ejtve.

Megjegyzés: Mindkét parancsot használhatjuk a Serial pszeudotípus megadására, mivel az alábbi parancsok hasonlóak egymáshoz.

 CREATE TABLE table_name( ID SERIAL ); 

 CREATE SEQUENCE table_name_ID_seq; CREATE TABLE table_name ( ID integer NOT NULL DEFAULT nextval('table_name_ID_seq') ); ALTER SEQUENCE table_name_ID_seq OWNED BY table_name.ID; 

A PostgreSQL Serial pszeudo-típus három típusba sorolták, amelyek a következők:

    KISSZOROZAT SOROZATSZÁM BIGSERIAL

A következő táblázatunkban megtalálható az összes Soros pszeudo-típus a PostgreSQL által támogatott specifikáció:

Név Tárolási méret Hatótávolság
KISSZOROZAT 2 bájt 1-től 32767-ig
SOROZATSZÁM 4 bájt 1-től 2147483647-ig
BIGSERIAL 8 bájt 1-től 9223372036854775807-ig

A PostgreSQL Serial pszeudotípus szintaxisa

A PostgreSQL szintaxisa Soros pszeudo-típus alábbiak szerint:

 variable_name SERIAL 

Példák a PostgreSQL SERIAL típusra

Lássunk különböző példákat, hogy megértsük, hogyan a PostgreSQL Serial pszeudo típus működik .

Megjegyzés: Meghatározhatjuk az ELSŐDLEGES KULCS kényszert a SOROZAT oszlophoz, mert a SERIAL típus nem hoz létre közvetetten indexet az oszlopban, és nem teszi az oszlopot elsődleges kulcs oszlopként.

Létrehozunk egy új táblát a CREATE parancs segítségével, és beszúrunk néhány értéket az INSERT paranccsal.

Az alábbi példában a TEREMT parancs generál a Autók asztal a Szervezeti adatbázis:

 CREATE TABLE Cars( Car_id SERIAL PRIMARY KEY, Car_name VARCHAR NOT NULL, Car_model VARCHAR NOT NULL ); 

Kimenet

A Autók táblázat sikeresen létrejött a fenti parancsok végrehajtása után, amint az az alábbi képernyőképen látható:

PostgreSQL sorozat

Egyszer a Autók táblázatot generáltunk, az INSERT paranccsal beszúrhatunk néhány értéket. És használhatjuk a ALAPÉRTELMEZETT kulcsszót az INSERT parancsban, vagy hagyja ki az oszlop nevét (Car_id) .

 INSERT INTO Cars(Car_name, Car_model) VALUES('Porche','911 Carrera'); 

Kimenet

A fenti parancs végrehajtása után a következő üzenetet kapjuk, és az értéket sikeresen beillesztették a Autók asztal:

PostgreSQL sorozat

VAGY Használni a ALAPÉRTELMEZETT kulcsszó az Oszlop névvel (Car_id):

 INSERT INTO Cars(Car_id, Car_name, Car_model) VALUES(DEFAULT,'Audi','A8'); 

Kimenet

A fenti parancs végrehajtásakor a következő üzenetet kapjuk; az értéket sikeresen beillesztették a Autók asztal:

PostgreSQL sorozat

Amint a fenti képernyőképen láthatjuk, a PostgreSQL két sort szúrt be a Autók asztal a Car_id oszlop értékei 1. és 2 .

Létrehozása és beillesztése után a Autók táblázat értékeit fogjuk használni KIVÁLASZTÁS parancs visszaadja a Autók asztal:

 SELECT * FROM Cars; 

Kimenet

A fenti parancs sikeres végrehajtása után a következő eredményt kapjuk:

PostgreSQL sorozat

Használhatjuk a pg_get_serial_sequence() függvény a sorozat nevének lekéréséhez SOROZATSZÁM oszlopban egy megadott táblázatban, amint azt az alábbi szintaxisban láthatjuk:

karakterlánc tömbként
 pg_get_serial_sequence('table_name','column_name') 

Ahhoz, hogy a jelenlegi érték a sorozat által létrehozott szekvencia nevet adhatunk át a currval() függvénynek.

A következő példában használtuk a currval() függvény által előállított aktuális értéket adja vissza Autók asztal Car_id_seq tárgy:

 SELECT currval(pg_get_serial_sequence('Cars', 'car_id')); 

Kimenet

A fenti parancs végrehajtása után az alábbi kimenetet kapjuk:

PostgreSQL sorozat

Használhatjuk a RETURNING Car_id záradékot az INSERT parancsba, ha azt akarjuk, hogy a sorozat által létrehozott értékeket megkapjuk, amikor új sort szúrunk be a táblázatba.

Az alábbi paranccsal új sort szúrhatunk be a Autók tábla, és visszaadja a számára generált rekordokat Car_id oszlop.

 INSERT INTO Cars(Car_name,Car_model) VALUES('Jaguar', 'XK') RETURNING Car_id; 

Kimenet

A fenti parancs végrehajtásakor a következő kimenetet kapjuk, amely visszaadja a Car_id mint 3 :

PostgreSQL sorozat

Jegyzet:

  • Ahogy fentebb megértettük, a szekvenciagenerátor a művelet nem tranzakcióbiztos, ami azt jelenti, hogy minden felhasználó más értéket kap ha két párhuzamos adatbázis kapcsolatok megpróbálják megszerezni a következő értéket egy sorozatból.
  • És az adott felhasználó sorszáma tétlen lesz, és rést hoz létre a sorozatban, ha egy felhasználó visszaállíthatja a tranzakciót .

Példa2

Lássunk még egy példát a tanuláshoz Soros pszeudo-típus részletesen.

Tehát egy másik új táblát fogunk létrehozni, mint a Zöldségek táblázatot a CREATE parancs segítségével hasonlóvá adatbázis vagyis Szervezet a ... val Veg_id oszlop, mint a SOROZATSZÁM pszeudo-típusú.

 CREATE TABLE Vegetables( Veggie_id SERIAL PRIMARY KEY, Veggie_name VARCHAR NOT NULL, Veggie_seasons VARCHAR NOT NULL ); 

Kimenet

A Zöldségek táblázat sikeresen létrejött a fenti parancsok végrehajtása után, amint az az alábbi képernyőképen látható:

PostgreSQL sorozat

Egyszer a Zöldségek táblázat létrehozása megtörtént, akkor az INSERT paranccsal beszúrunk néhány értéket, és kihagyjuk a Veggies_id oszlop az alábbi parancs szerint:

 INSERT INTO Vegetables(Veggie_name,Veggie_seasons) VALUES('Broccoli','Spring'); 

Kimenet

A fenti parancs végrehajtásakor a következő üzenetet kapjuk: az értéket sikeresen beillesztették a Zöldségek asztal.

PostgreSQL sorozat

Vagy használhatjuk a Alapértelmezett kulcsszót, és a Veggie_id oszlop a következő parancsban látható módon:

 INSERT INTO Vegetables (Veggie_id,Veggie_seasons, Veggie_seasons) VALUES(DEFAULT, 'Sweet Potatoes','Winter'); 

Kimenet

A fenti parancs végrehajtása után az alábbi üzenetet kapjuk, amely szerint vagy használhatjuk a Alapértelmezett kulcsszó vagy a figyelmen kívül hagyja az oszlop nevét , hasonló kimenetet kapunk:

PostgreSQL sorozat

Ezért hozzáadunk néhány további értéket a Autók táblázat a következő parancs segítségével:

android verziók
 INSERT INTO Vegetables(Veggie_name,Veggie_seasons) VALUES('Jalapeno Peppers','Fall'), ('Cucumbers','Summer'), ('Winter Squash','Winter'), ('Snow Peas','Spring'), ('Black Radish','All seasons'), ('Pumpkin','Fall'); 

Kimenet

A fenti parancs végrehajtása után az alábbi üzenetet kapjuk, amely jelzi, hogy az értéket sikeresen beillesztették a Zöldségek asztal.

PostgreSQL sorozat

Létrehozása és beillesztése után a Zöldségek táblázat értékeit fogjuk használni KIVÁLASZTÁS parancs az összes sor visszaadásához Zöldségek asztal:

 SELECT * FROM Vegetables; 

Kimenet

A fenti parancs sikeres végrehajtása után az alábbi kimenetet kapjuk:

PostgreSQL sorozat

Áttekintés

Ban,-ben PostgreSQL Serial pszeudo-típus szakaszban megtanultuk a Serial pszeudo típusú funkcionalitást, amelyet többnyire egy olyan létrehozására használnak automatikus növekedés oszlop értéke egy adott táblázathoz.