logo

PostgreSQL-sarja

Tässä osiossa aiomme ymmärtää toiminnan PostgreSQL-sarja pseudotyyppi, jonka avulla voimme määritellä sarakkeiden automaattinen lisäys taulukoissa. Ja me myös näemme esimerkkejä -lta PostgreSQL Serial pseudotyyppi .

Mikä on PostgreSQL Serial pseudotyyppi?

PostgreSQL:ssä meillä on yksi tietynlainen tietokantaobjektien generaattori, joka tunnetaan nimellä Sarja , johon on tottunut luoda kokonaislukujen sarja joita käytetään usein a Pääavain taulukossa.

Sekvenssi voidaan luoda avulla SERIAL pseudo-tyyppi , kun luomme uutta taulukkoa, kuten voimme nähdä seuraavasta komennosta:

 CREATE TABLE table_name( ID SERIAL ); 

PostgreSQL tekee seuraavan, jos tarjoamme SERIAL pseudo-tyyppi kohtaan ID sarake:

  • Ensin PostgreSQL luo sarjaobjektin ja määrittää sitten seuraavan sekvenssin luoman arvon tietyn sarakkeen ennalta määritetyksi arvoksi.
  • Sen jälkeen PostgreSQL parantaa a EI NULL-rajoitus kohtaan ID-sarake koska sekvenssi tuottaa aina kokonaisluvun, joka on a ei-nolla-arvo .
  • Viimeinkin PostgreSQL antaa sekvenssin omistajan ID sarake; ulostulona sekvenssiobjekti poistetaan, kun taulukko tai ID-sarake on pudonnut.

Huomautus: Voimme käyttää molempia komentoja Serial-pseudotyypin määrittämiseen, koska molemmat alla olevat komennot ovat samanlaisia.

 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; 

The PostgreSQL Serial pseudotyyppi on luokiteltu kolmeen tyyppiin, jotka ovat seuraavat:

    PIENSARJA SARJA BIGSERIAL

Meillä on seuraava taulukko, joka sisältää kaikki Sarja pseudo-tyyppi spesifikaatio, jota PostgreSQL tukee:

Nimi Tallennuksen koko Alue
PIENSARJA 2 tavua 1-32767
SARJA 4 tavua 1 - 2147483647
BIGSERIAL 8 tavua 1 numeroon 9223372036854775807

PostgreSQL-sarjan pseudotyypin syntaksi

PostgreSQL:n syntaksi Sarja pseudo-tyyppi seuraavasti:

 variable_name SERIAL 

Esimerkkejä PostgreSQL SERIAL -tyypistä

Katsotaanpa erilaisia ​​esimerkkejä ymmärtääksemme, miten PostgreSQL Serial pseudotyyppi toimii .

Huomautus: Voimme määrittää PRIMARY KEY -rajoituksen SERIAL-sarakkeelle, koska SERIAL-tyyppi ei epäsuorasti luo indeksiä sarakkeeseen tai tee sarakkeesta ensisijaisen avaimen saraketta.

Luomme yhden uuden taulukon CREATE-komennon avulla ja lisäämme arvoja INSERT-komennolla.

Alla olevassa esimerkissä käytämme LUODA komento luoda a Autot pöytään Organisaation tietokanta:

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

Lähtö

The Autot taulukko on luotu onnistuneesti yllä olevien komentojen suorittamisen jälkeen, kuten alla olevassa kuvakaappauksessa näkyy:

PostgreSQL-sarja

Kerran Autot taulukko on luotu, voimme lisätä siihen arvoja INSERT-komennolla. Ja voimme käyttää OLETUS avainsana INSERT-komennossa tai jätä sarakkeen nimi pois (auton_tunnus) .

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

Lähtö

Yllä olevan komennon toteuttamisen jälkeen saamme seuraavan viestin, ja arvo on lisätty onnistuneesti Autot pöytä:

PostgreSQL-sarja

TAI Käyttämällä OLETUSAvainsana sarakkeen nimellä (Car_id):

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

Lähtö

Toteutettaessa yllä olevaa komentoa, saamme seuraavan viestin; arvo on lisätty onnistuneesti Autot pöytä:

PostgreSQL-sarja

Kuten yllä olevassa kuvakaappauksessa näemme, PostgreSQL lisäsi kaksi riviä tiedostoon Autot pöytä kanssa Auton_tunnus sarakkeen arvot ovat 1 ja 2 .

Kun olet luonut ja lisännyt Autot taulukon arvot, käytämme VALITSE komento palauttaa kaikki rivit Autot pöytä:

 SELECT * FROM Cars; 

Lähtö

Kun yllä oleva komento on toteutettu onnistuneesti, saamme seuraavan tuloksen:

PostgreSQL-sarja

Voimme käyttää pg_get_serial_sequence() funktio saada sekvenssinimen a SARJA sarake määritetyssä taulukossa, kuten näemme alla olevasta syntaksista:

 pg_get_serial_sequence('table_name','column_name') 

Saadaksesi nykyinen arvo sekvenssin luoma, voimme välittää sekvenssin nimen currval()-funktiolle.

Seuraavassa esimerkissä käytimme currval () funktio palauttaa sen tuottaman nykyisen arvon Autot pöytä Car_id_seq esine:

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

Lähtö

Yllä olevan komennon toteuttamisen jälkeen saamme alla olevan lähdön:

PostgreSQL-sarja

Voimme käyttää PALAUTUS Auton_tunnus lauseke INSERT-komentoon, jos haluamme saada sekvenssin luomat arvot, kun lisäämme uuden rivin taulukkoon.

Alla olevaa komentoa käytetään uuden rivin lisäämiseen Autot taulukko ja palauttaa sovellukselle luodut tietueet Auton_tunnus sarakkeessa.

kevät saappaiden huomautukset
 INSERT INTO Cars(Car_name,Car_model) VALUES('Jaguar', 'XK') RETURNING Car_id; 

Lähtö

Suorittaessamme yllä olevan komennon saamme seuraavan lähdön, joka palauttaa Auton_tunnus kuten 3 :

PostgreSQL-sarja

Huomautus:

  • Kuten yllä ymmärsimme, sekvenssigeneraattori toiminta ei ole tapahtumaturvallista, mikä tarkoittaa, että jokainen käyttäjä saa eri arvon jos kaksi rinnakkaista tietokantaa yhteydet yrittävät saada seuraavan arvon sekvenssistä.
  • Ja kyseisen käyttäjän järjestysnumero on käyttämättömänä ja luo aukon sekvenssiin if yksi käyttäjä voi peruuttaa tapahtuman .

Esimerkki2

Katsotaanpa vielä yksi esimerkki oppiaksemme Sarja pseudo-tyyppi yksityiskohtaisesti.

Joten aiomme luoda toisen uuden taulukon a Vihannekset taulukko CREATE-komennon avulla samanlaiseksi tietokanta tuo on Organisaatio kanssa Veg_id sarakkeessa SARJA pseudotyyppinen.

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

Lähtö

The Vihannekset taulukko on luotu onnistuneesti yllä olevien komentojen suorittamisen jälkeen, kuten alla olevassa kuvakaappauksessa näkyy:

PostgreSQL-sarja

Kerran Vihannekset taulukko on luotu, lisäämme siihen joitain arvoja INSERT-komennolla ja jätämme pois Vihannesten_id sarake alla olevan komennon mukaisesti:

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

Lähtö

Saamme seuraavan viestin, kun yllä oleva komento toteutetaan: arvo on lisätty onnistuneesti Vihannekset pöytä.

PostgreSQL-sarja

Tai voimme myös käyttää Oletus avainsanaa ja käyttää Kasvis_id sarake seuraavan komennon mukaisesti:

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

Lähtö

Yllä olevan komennon suorittamisen jälkeen saamme alla olevan viestin, jossa sanotaan, että joko voimme käyttää Oletusavainsana tai ohita sarakkeen nimi , saamme samanlaisen tulosteen:

PostgreSQL-sarja

Siksi lisäämme arvoihin lisää arvoja Autot taulukko seuraavan komennon avulla:

 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'); 

Lähtö

Yllä olevan komennon suorittamisen jälkeen saamme alla olevan viestin, joka näyttää, että arvo on lisätty onnistuneesti Vihannekset pöytä.

PostgreSQL-sarja

Kun olet luonut ja lisännyt Vihannekset taulukon arvot, käytämme VALITSE komento palauttaa kaikki rivit Vihannekset pöytä:

 SELECT * FROM Vegetables; 

Lähtö

Kun yllä oleva komento on toteutettu onnistuneesti, saamme alla olevan lähdön:

PostgreSQL-sarja

Yleiskatsaus

Vuonna PostgreSQL Serial pseudotyyppi -osiossa olemme oppineet Serial pseudotyyppisen toiminnallisuuden, jota käytetään useimmiten luomaan automaattiset lisäykset sarakkeen arvo tietylle taulukolle.