„PostgreSQL“

Kaip nustatyti „PostgreSQL“ automatinio prieaugio pagrindinį raktą?

Kaip nustatyti „PostgreSQL“ automatinio prieaugio pagrindinį raktą?
Gali būti atvejų, kai kuriate ir prižiūrite lenteles „PostgreSQL“, kai norite, kad tam tikros stulpelio vertės būtų sukurtos pagal užklausą. Tai ypač pasakytina apie stulpelius „id“, kurie veikia kaip pagrindinis lentelės raktas. Laimei, SERIAL pseudo tipas leidžia padaryti patogų sveikų skaičių eilutę. Serija yra „PostgreSQL“ duomenų bazės objekto tipas, sukuriantis indeksų arba sveikųjų skaičių seriją. „PostgreSQL“ seka sukuria skirtingų skaičių skaičių eilutę, todėl ją galima naudoti kaip pagrindinį raktą kuriant naują lentelę. Parodysime jums, kokie automatinio didinimo meniu yra „PostgreSQL“, ir šiame vadove naudosime SERIAL pseudo tipą.

Sintaksė:

Pagrindinė automatinio prieaugio pagrindinio rakto kūrimo sintaksė yra tokia:

>> CREATE TABLE table_name (id SERIAL);

Pažvelkime į deklaraciją CREATE TABLE išsamiau:

Norėdami suprasti automatinio prieaugio koncepciją, prieš tęsdami šio vadovo iliustracijas, įsitikinkite, kad sistemoje yra įdiegta ir sukonfigūruota „PostgreSQL“. Darbalaukyje atidarykite „PostgreSQL“ komandinės eilutės apvalkalą. Pridėkite savo serverio pavadinimą, kurį norite naudoti, kitaip palikite numatytąjį. Parašykite serverio, kuriame norite dirbti, duomenų bazės pavadinimą. Jei nenorite jo pakeisti, palikite jį kaip numatytąjį. Mes naudosime „testinę“ duomenų bazę, todėl ją ir pridėjome. Taip pat galite dirbti su numatytuoju 5432 prievadu, bet taip pat galite jį pakeisti. Galų gale turite pateikti pasirinktos duomenų bazės vartotojo vardą. Palikite jį pagal nutylėjimą, jei nenorite jo pakeisti. Įveskite pasirinkto vartotojo vardo slaptažodį ir klaviatūroje paspauskite „Enter“, kad pradėtumėte naudoti komandų apvalkalą.

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

Kurdami lentelę, pagrindinio stulpelio lauke paprastai nepridedame raktinio žodžio SERIAL. Tai reiškia, kad mes turime pridėti reikšmes į pagrindinio rakto stulpelį naudodami INSERT sakinį. Bet kai kurdami lentelę užklausoje naudojame raktinį žodį SERIAL, įterpdami reikšmes neturėtume pridėti pirminių stulpelių reikšmių. Pažvelkime į tai.

01 pavyzdys:

Sukurkite lentelę „Testas“ su dviem stulpeliais „id“ ir „name“. Stulpelis „id“ buvo apibrėžtas kaip pagrindinio rakto stulpelis, nes jo duomenų tipas yra SERIAL. Kita vertus, stulpelis „pavadinimas“ apibrėžiamas kaip „TEXT NOT NULL“ duomenų tipas. Išbandykite toliau pateiktą komandą, kad sukurtumėte lentelę, ir lentelė bus sukurta efektyviai, kaip parodyta žemiau esančiame paveikslėlyje.

>> CREATE TABLE Test (ID SERIAL PRIMARY RAKTAS, pavadinimas TEXT NOT NULL);

Įterpkime keletą reikšmių į naujai sukurtos lentelės „TEST“ stulpelį „pavadinimas“. Stulpelyje „id“ nepridėsime jokios vertės. Galite pamatyti, kad reikšmės sėkmingai įterptos naudojant INSERT komandą, kaip nurodyta toliau.

>> INSERT INTO Test (pavadinimas) VERTYBĖS ('Aqsa'), ('Rimsha'), ('Khanas');

Atėjo laikas patikrinti lentelės „Test“ įrašus. Išbandykite toliau nurodytą komandų apvalkalo komandą.

>> SELECT * FROM testas;

Iš žemiau pateiktos išvesties galite pastebėti, kad stulpelis „id“ automatiškai gavo kai kurias vertes, net jei iš INSERT komandos nepridėjome jokių verčių dėl duomenų tipo SERIAL, kurį nurodėme stulpeliui „id“. Taip duomenų tipas SERIAL veikia atskirai.

02 pavyzdys:

Kitas būdas patikrinti SERIAL duomenų tipo stulpelio vertę yra komandoje INSERT naudoti raktinį žodį RETURN. Toliau pateiktoje deklaracijoje lentelėje „Testas“ sukuriama nauja eilutė ir pateikiama lauko „id“ vertė:

>> INSERT INTO Test (name) VALUES ('Hassam') RETURNING id;

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

>> SELECT * FROM testas;

03 pavyzdys:

Alternatyvi pirmiau pateiktos įterpimo užklausos versija naudoja DEFAULT raktinį žodį. „INSERT“ komandoje naudosime stulpelio „id“ pavadinimą, o skiltyje VERTYBĖS kaip reikšmę pateiksime Numatytąjį raktinį žodį. Žemiau pateikta užklausa veiks tą patį vykdant.

>> INSERT INTO Test (ID, pavadinimas) VERTYBĖS (Numatyta, „Raza“);

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

>> SELECT * FROM testas;

Iš žemiau pateiktos išvesties galite pamatyti, kad nauja vertė buvo pridėta, o stulpelis „id“ pagal numatytuosius nustatymus buvo padidintas.

04 pavyzdys:

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

>> SELECT currval (pg_get_serial_sequence ('Test', 'id'));

Verta paminėti, kad funkcija „currval“ () padeda mums išgauti naujausią sekos vertę, kuri yra „5“. Žemiau pateiktas paveikslėlis iliustruoja, kaip spektaklis galėtų atrodyti.

Išvada:

Šiame vadovo vadovėlyje mes parodėme, kaip naudoti SERIAL pseudo tipą, norint automatiškai didinti „PostgreSQL“. Naudojant „PostgreSQL“ seriją paprasta sukurti automatiškai didėjantį skaičių rinkinį. Tikimės, kad SERIAL lauką galėsite pritaikyti lentelių aprašymams naudodamiesi mūsų iliustracijomis.

„Vulkan“, skirta „Linux“ vartotojams
Kiekvienos naujos kartos grafikos plokštės matome, kaip žaidimų kūrėjai peržengia grafinės ištikimybės ribas ir artėja prie fotorealizmo. Nepaisant vi...
„OpenTTD“ ir „Simutrans“
Sukurti savo transporto modeliavimą gali būti smagu, atpalaiduojanti ir be galo viliojanti. Štai kodėl jūs turite įsitikinti, kad išbandėte kuo daugia...
„OpenTTD“ pamoka
„OpenTTD“ yra vienas iš populiariausių verslo modeliavimo žaidimų. Šiame žaidime turite sukurti nuostabų transporto verslą. Tačiau pradėsite nuo mažda...