Kaip nustatyti „PostgreSQL“ automatinio didinimo pirminį raktą?

How Setup Postgresql Auto Increment Primary Key



Gali būti atvejų, kai kuriate ir prižiūrite lenteles „PostgreSQL“, kai norite konkrečių stulpelio, sugeneruoto pagal užklausą, reikšmių. Tai ypač pasakytina apie stulpelius, kurie veikia kaip pagrindinis lentelės raktas. Laimei, serijinis pseudo tipas leidžia patogiai padaryti automatiškai didėjančią sveikųjų skaičių seriją. Serija yra duomenų bazės objekto tipas „PostgreSQL“, kuris sukuria indeksų ar sveikųjų skaičių seriją. „PostgreSQL“ seka sukuria skirtingų sveikųjų skaičių eilutę, todėl ją galima naudoti kaip pagrindinį raktą kuriant naują lentelę. Mes jums parodysime, kokie automatinio didinimo meniu yra „PostgreSQL“, ir šiame vadove naudosime SERIALINĮ pseudo tipą.

Sintaksė:

Bendroji automatinio didinimo pirminio rakto kūrimo sintaksė yra tokia:







>>KURTI LENTELĘ table_name( idSERIJINIS);

Dabar pažvelkime į CREATE TABLE deklaraciją išsamiau:



  • „PostgreSQL“ pirmiausia sukuria serijos objektą. Jis sukuria kitą serijos vertę ir nustato ją kaip numatytąją lauko pamatinę vertę.
  • „PostgreSQL“ taiko ID laukui numanomą apribojimą NOT NULL, nes serija gamina skaitines reikšmes.
  • ID laukas bus priskirtas kaip serijos turėtojas. Jei ID laukas arba pati lentelė praleidžiami, seka bus atmesta.

Norėdami suprasti automatinio didinimo sąvoką, prieš tęsdami šio vadovo iliustracijas, įsitikinkite, kad „PostgreSQL“ yra sumontuota ir sukonfigūruota jūsų sistemoje. Atidarykite „PostgreSQL“ komandinės eilutės apvalkalą iš darbalaukio. Pridėkite savo serverio pavadinimą, su kuriuo norite dirbti, kitu atveju palikite jį numatytuoju. Parašykite duomenų bazės pavadinimą, esantį jūsų serveryje, kuriame norite dirbti. Jei nenorite jo keisti, palikite jį kaip numatytąjį. Mes naudosime bandymų duomenų bazę, todėl ją pridėjome. Taip pat galite dirbti su numatytuoju 5432 prievadu, bet taip pat galite jį pakeisti. Galų gale turite nurodyti pasirinktos duomenų bazės vartotojo vardą. Palikite jį numatytuoju, jei nenorite jo keisti. Įveskite pasirinkto vartotojo vardo slaptažodį ir paspauskite klavišą Enter, kad pradėtumėte naudoti komandų apvalkalą.







SERIAL raktažodžio naudojimas kaip duomenų tipas:

Kurdami lentelę, dažniausiai nepridedame raktinio žodžio SERIAL pirminio stulpelio lauke. Tai reiškia, kad mes turime pridėti reikšmes prie pirminio rakto stulpelio, naudodami INSERT sakinį. Tačiau kai kurdami lentelę savo užklausoje naudojame raktinį žodį SERIAL, įterpdami reikšmes neturėtume pridėti pirminių stulpelių verčių. Pažvelkime į tai.

01 pavyzdys:

Sukurkite lentelės testą su dviem stulpeliais id ir pavadinimu. Stulpelio ID buvo apibrėžtas kaip pagrindinis raktas, nes jo duomenų tipas yra SERIAL. Kita vertus, stulpelio pavadinimas apibrėžiamas kaip duomenų tipas TEXT NOT NULL. Išbandykite toliau pateiktą komandą, kad sukurtumėte lentelę, ir lentelė bus sukurta efektyviai, kaip parodyta paveikslėlyje žemiau.



>>KURTI LENTELĘ Testas( idPAGRINDINIS PAGRINDINIS RAKTAS, pavadinimas TEKSTAS NĖRA NULL);

Įterpkime kai kurias vertes į naujai sukurtos lentelės TEST stulpelio pavadinimą. Stulpelio ID nepridėsime jokios vertės. Galite matyti, kad vertės buvo sėkmingai įterptos naudojant komandą INSERT, kaip nurodyta toliau.

>>INSERT INTO Test(vardas)VERTYBĖS(„Aqsa“),(„Rimša“),(„Khanas“);

Atėjo laikas patikrinti lentelės „Testas“ įrašus. Išbandykite žemiau pateiktą SELECT instrukciją komandos apvalkale.

>>PASIRINKTI*IŠ bandymo;

Iš toliau pateiktos išvesties galite pastebėti, kad stulpelio ID automatiškai turi tam tikras vertes, nors mes nepridėjome jokių reikšmių iš komandos INSERT dėl duomenų tipo SERIAL, kurį nurodėme stulpelio ID. Taip duomenų tipas SERIAL veikia savarankiškai.

02 pavyzdys:

Kitas būdas patikrinti stulpelio SERIAL duomenų tipą yra naudojant RETURNING raktinį žodį komandoje INSERT. Toliau pateikta deklaracija sukuria naują eilutę bandymų lentelėje ir pateikia ID lauko reikšmę:

>>INSERT INTO Test(vardas)VERTYBĖS(„Hassam“)GRĄŽINIMASid;

Patikrindami lentelės Test įrašus naudodami SELECT užklausą, gavome žemiau pateiktą išvestį, kaip parodyta paveikslėlyje. Penktasis įrašas buvo efektyviai įtrauktas į lentelę.

>>PASIRINKTI*IŠ bandymo;

03 pavyzdys:

Alternatyvi aukščiau pateiktos įterpimo užklausos versija naudoja DEFAULT raktinį žodį. Komandoje INSERT naudosime stulpelio ID pavadinimą, o skiltyje VALUES kaip reikšmę suteiksime numatytąjį raktinį žodį. Žemiau pateikta užklausa bus vykdoma taip pat.

>>INSERT INTO Test(id, vardas)VERTYBĖS(Numatytasis, „Lenktynės“);

Dar kartą patikrinkime lentelę naudodami SELECT užklausą taip:

>>PASIRINKTI*IŠ bandymo;

Iš toliau pateiktos išvesties galite matyti, kad nauja vertė buvo pridėta, o stulpelio ID pagal numatytuosius nustatymus buvo padidintas.

04 pavyzdys:

Stulpelio lauko SERIAL eilės numerį galima rasti „PostgreSQL“ lentelėje. Tam naudojamas metodas pg_get_serial_sequence (). Turime naudoti funkciją currval () kartu su pg_get_serial_sequence () metodu. Šioje užklausoje funkcijos pg_get_serial_sequence () parametruose pateiksime lentelės pavadinimą ir jos SERIAL stulpelio pavadinimą. Kaip matote, mes nurodėme lentelę Testas ir stulpelio ID. Šis metodas naudojamas žemiau pateiktame užklausos pavyzdyje:

>>PASIRINKTI kreivę(pg_get_serial_sequence(„Bandymas“, „id'));

Verta paminėti, kad funkcija currval () padeda mums išgauti naujausią sekos vertę, kuri yra 5. Žemiau esančiame paveikslėlyje iliustruojama, kaip galėtų atrodyti spektaklis.

Išvada:

Šioje vadovo pamokoje mes parodėme, kaip naudoti SERIAL pseudo tipą, kad automatiškai padidintumėte PostgreSQL. Naudojant seriją „PostgreSQL“, paprasta sukurti automatiškai didėjantį skaičių rinkinį. Tikimės, kad galėsite naudoti SERIAL lauką lentelių aprašymuose, naudodami mūsų iliustracijas kaip nuorodą.