Sintaksė:
Pagrindinė automatinio prieaugio pagrindinio rakto kūrimo sintaksė yra tokia:
>> CREATE TABLE table_name (id SERIAL);Pažvelkime į deklaraciją CREATE TABLE išsamiau:
- „PostgreSQL“ pirmiausia sukuria serijos objektą. Jis sukuria kitą reikšmę serijoje ir nustato ją kaip numatytąją lauko nuorodos vertę.
- „PostgreSQL“ ID laukui taiko numanomą apribojimą NOT NULL, nes serija sukuria skaitines reikšmes.
- Laukas ID bus paskirtas kaip serijos savininkas. Jei ID laukas arba pati lentelė bus praleista, seka bus atmesta.
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.