logo

PostgreSQL serija

Šiame skyriuje mes suprasime, kaip veikia PostgreSQL serija pseudo-tipas, leidžiantis apibrėžti automatinio padidinimo stulpeliai lentelėse. Ir mes taip pat matome pavyzdžiųPostgreSQL serijinis pseudo tipas .

Kas yra PostgreSQL Serial pseudo tipas?

„PostgreSQL“ turime vieną konkretų duomenų bazės objektų generatorių, žinomą kaip Serijinis , kuri yra įpratusi sukurti sveikųjų skaičių seką kurie dažnai naudojami kaip a Pirminis raktas lentelėje.

Seka gali būti sukurta naudojant SERIAL pseudo-tipas , kol kuriame naują lentelę, kaip matome šioje komandoje:

 CREATE TABLE table_name( ID SERIAL ); 

„PostgreSQL“ atlieka šiuos veiksmus, jei pateikiame SERIAL pseudo-tipas prie ID stulpelis:

  • Pirma, „PostgreSQL“ sukurs sekos objektą, o tada nustatys sekančią seką kaip konkretaus stulpelio iš anksto nustatytą reikšmę.
  • Po to PostgreSQL pagerins a NOT NULL apribojimas prie ID stulpelis nes seka visada sukuria sveikąjį skaičių, kuris yra a nenuline vertė .
  • Pagaliau PostgreSQL pateiks sekos savininką ID stulpelis; kaip išvestis, sekos objektas pašalinamas, kai lentelė arba ID stulpelis yra nuleistas.

Pastaba: galime naudoti abi komandas, kad nurodytume serijinį pseudo tipą, nes abi toliau pateiktos komandos yra panašios viena į kitą.

 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 serijinis pseudo tipas buvo suskirstytas į tris tipus, kurie yra tokie:

    MAŽAS SERIJA SERIJINIS BIGSERIAL

Turime šią lentelę, kurioje yra visa informacija Serijinis pseudo tipas specifikacija, kurią palaiko PostgreSQL:

latekso sąrašai
vardas Sandėliavimo dydis diapazonas
MAŽAS SERIJA 2 baitai 1 iki 32767
SERIJINIS 4 baitai 1 iki 2147483647
BIGSERIAL 8 baitai 1 iki 9223372036854775807

„PostgreSQL“ serijos pseudotipo sintaksė

PostgreSQL sintaksė Serijinis pseudo tipas taip:

 variable_name SERIAL 

PostgreSQL SERIAL tipo pavyzdžiai

Pažiūrėkime įvairius pavyzdžius, kad suprastume, kaip PostgreSQL Serial pseudo tipas veikia .

Pastaba: Stulpeliui SERIAL galime apibrėžti PIRMINIO RAKTO apribojimą, nes SERIAL tipas netiesiogiai nesukuria stulpelio indekso arba nepadaro stulpelio pagrindinio rakto stulpeliu.

Sukuriame vieną naują lentelę su komandos CREATE pagalba ir įterpiame kai kurias reikšmes naudodami komandą INSERT .

Žemiau pateiktame pavyzdyje mes naudojame KURTI komanda generuoti a Automobiliai stalą į Organizacijos duomenų bazė:

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

Išvestis

The Automobiliai Lentelė buvo sėkmingai sukurta įvykdžius aukščiau nurodytas komandas, kaip parodyta žemiau esančioje ekrano kopijoje:

PostgreSQL serija

Kartą Automobiliai lentelė buvo sugeneruota, kai kurias reikšmes į ją galime įterpti naudodami komandą INSERT. Ir mes galime naudoti NUMATYTAS raktinį žodį komandoje INSERT arba praleiskite stulpelio pavadinimą (Car_id) .

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

Išvestis

Įgyvendinę aukščiau pateiktą komandą, gausime šį pranešimą, o reikšmė buvo sėkmingai įterpta į Automobiliai lentelė:

PostgreSQL serija

ARBA Naudojant NUMATYTOJI raktinis žodis su stulpelio pavadinimu (Car_id):

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

Išvestis

Įgyvendinę aukščiau pateiktą komandą, gausime šį pranešimą; reikšmė sėkmingai įterpta į Automobiliai lentelė:

masyvo sąrašas java rūšiavimo
PostgreSQL serija

Kaip matome aukščiau esančioje ekrano kopijoje, PostgreSQL įterpė dvi eilutes į Automobiliai stalas su Automobilio_id stulpelių reikšmės yra 1 ir 2 .

Sukūrę ir įdėję Automobiliai lentelės reikšmes, naudosime PASIRINKTI komanda grąžina visas eilutes Automobiliai lentelė:

konstruktoriai java
 SELECT * FROM Cars; 

Išvestis

Sėkmingai įgyvendinę aukščiau pateiktą komandą, gausime tokį rezultatą:

PostgreSQL serija

Mes galime naudoti pg_get_serial_sequence() funkcija gauti sekos pavadinimą a SERIJINIS stulpelyje nurodytoje lentelėje, kaip matome toliau pateiktoje sintaksėje:

 pg_get_serial_sequence('table_name','column_name') 

Norėdami gauti dabartinė vertė sukurtą sekos, galime perduoti sekos pavadinimą currval() funkcijai.

Toliau pateiktame pavyzdyje mes naudojome currval () funkcija grąžinti dabartinę vertę, kurią sukuria Automobiliai stalo Automobilio_id_seq objektas:

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

Išvestis

Įdiegę aukščiau pateiktą komandą, gausime žemiau pateiktą išvestį:

PostgreSQL serija

Mes galime naudoti GRĄŽINAMAS Automobilio_id sąlygą į komandą INSERT, jei norime gauti tas reikšmes, kurias sukuria seka, kai į lentelę įterpiame naują eilutę.

Žemiau pateikta komanda naudojama įterpti naują eilutę į Automobiliai lentelę ir grąžina tuos įrašus, sugeneruotus Automobilio_id stulpelyje.

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

Išvestis

Vykdydami aukščiau pateiktą komandą, gausime šią išvestį, kuri grąžina Automobilio_id kaip 3 :

PostgreSQL serija

Pastaba:

  • Kaip supratome aukščiau, sekos generatorius operacija neapsaugota nuo operacijų, o tai reiškia, kad kiekvienas vartotojas gaus skirtingą vertę jei dvi lygiagrečios duomenų bazės ryšiai bando gauti kitą reikšmę iš sekos.
  • O to vartotojo eilės numeris bus neaktyvus ir sukuria tarpą sekoje if vienas vartotojas gali atšaukti operaciją .

2 pavyzdys

Pažiūrėkime dar vieną pavyzdį, kad sužinotume Serijinis pseudo tipas detaliai.

Taigi, mes ketiname sukurti dar vieną naują lentelę kaip a Daržovės lentelė su komandos CREATE pagalba į panašią duomenų bazėje tai yra Organizacija su Veg_id stulpelis kaip SERIJINIS pseudo tipo.

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

Išvestis

The Daržovės Lentelė buvo sėkmingai sukurta įvykdžius aukščiau nurodytas komandas, kaip parodyta žemiau esančioje ekrano kopijoje:

įmesti į sql
PostgreSQL serija

Kartą Daržovės lentelė buvo sugeneruota, mes įterpsime kai kurias reikšmes į ją naudodami komandą INSERT ir praleisime Veggies_id stulpelyje, kaip parodyta toliau pateiktoje komandoje:

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

Išvestis

Įdiegę aukščiau pateiktą komandą gausime tokį pranešimą: reikšmė sėkmingai įterpta į Daržovės stalo.

PostgreSQL serija

Arba taip pat galime naudoti Numatytas raktinį žodį ir naudoja Veggie_id stulpelyje, kaip parodyta šioje komandoje:

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

Išvestis

Įvykdę aukščiau pateiktą komandą, gausime žemiau esantį pranešimą, kuriame sakoma, kad galime naudoti Numatytasis raktinis žodis arba nepaisyti stulpelio pavadinimo , gausime panašią išvestį:

PostgreSQL serija

Todėl pridėsime dar keletą reikšmių Automobiliai lentelę naudodami šią komandą:

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

Išvestis

Įvykdę aukščiau pateiktą komandą, gausime žemiau esantį pranešimą, kuriame bus rodoma, kad reikšmė sėkmingai įterpta į Daržovės stalo.

alfa beta genėjimo pavyzdys
PostgreSQL serija

Sukūrę ir įdėję Daržovės lentelės reikšmes, naudosime PASIRINKTI komanda grąžinti visas eilutes Daržovės lentelė:

 SELECT * FROM Vegetables; 

Išvestis

Sėkmingai įgyvendinę aukščiau pateiktą komandą, gausime žemiau pateiktą išvestį:

PostgreSQL serija

Apžvalga

Viduje PostgreSQL serijinis pseudo tipas skyrių, išmokome serijinio pseudo tipo funkcionalumą, kuris dažniausiai naudojamas kuriant an automatinis padidėjimas konkrečios lentelės stulpelio reikšmė.