Kaip iš naujo nustatyti seką „PostgreSQL“.

Kaip Is Naujo Nustatyti Seka Postgresql



„PostgreSQL“ sekos naudojimas yra efektyvus būdas dirbti su automatinio didinimo reikšme, ypač pirminiams raktams. Kai pradžios reikšmė neapibrėžta, automatinis INT didinimas prasidės nuo 0. Tačiau automatinio didinimo stulpelyje galite nurodyti, kokią pradinę reikšmę naudoti sekai.

Be to, jei atsiranda situacija, kai reikia pakeisti kitą sekos reikšmę, galite greitai nustatyti seką iš naujo ir nurodyti, nuo kurios vertės pradėti kitą lentelės įrašą. Visa informacija, kurią turėtumėte žinoti apie tai, kaip iš naujo nustatyti seką PostgreSQL, yra išsamiai aprašyta šiame pranešime. Pažiūrėk!

Pavyzdys, kaip iš naujo nustatyti seką „PostgreSQL“.

Naudodami INT stulpelį galite sukurti automatinio didinimo seką ir naudoti ją kaip pagrindinį lentelės raktą. Tokiu būdu jums nereikės įvesti jo verčių vykdant INSERT užklausą, nes sveikųjų skaičių reikšmės bus sugeneruotos automatiškai. Sukūrus seką, komanda ALTER SEQUENCE leidžia iš naujo paleisti seką ir nurodyti naują pradinę reikšmę naujiems įrašams.





Šiame pavyzdyje dirbsime su šia lentele „user_details“. Mes sutelkiame dėmesį į stulpelį „user_id“, kuris yra automatiškai didėjanti seka, prasidedanti nuo 100.





Norėdami išvardyti skirtingas duomenų bazės sekas, paleiskite šią komandą:





\ds

Mūsų atveju taikome seką „user_id“.



Norėdami gauti daugiau informacijos apie seką, paleiskite užklausą „Pasirinkti“, kaip parodyta toliau:

SELECT * FROM sekos_pavadinimas;

Matome, kad paskutinė esamos sekos reikšmė yra 104. Šią reikšmę nustatome iš naujo ir apibrėžiame naują reikšmę, kurią turės nauji įrašai.

Norėdami iš naujo nustatyti PostgreSQL seką, naudokite šią komandą:

ALTER SEQUENCE sekos_pavadinimas RESTART WITH reikšmę;

Mūsų atveju, tarkime, kad norime paleisti seką iš naujo ir naujus įrašus pradėti nuo 20. Vykdę šią komandą, gauname išvestį, kaip parodyta toliau, kuri patvirtina, kad seka buvo pakeista.

Jei iš naujo paleisime ankstesnę komandą, kad gautume išsamią informaciją apie seką naudodami SELECT sakinį, pamatysime, kad šiuo atveju nauja „last_value“ yra reikšmė, kurią nurodėme komandoje ALTER.

Įterpkime naują įrašą į lentelę, kad pamatytume, kas atsitiks. Toliau pateiktame paveikslėlyje parodyta INSERT užklausa ir rezultatai, kuriuos gauname paleidę SELECT sakinį. Atkreipkite dėmesį, kaip naujo įrašo „user_id“ yra nustatytas į 20. Visų mūsų daromų naujų įrašų „user_id“ bus sugeneruotas pagal paskutinę reikšmę, kuri yra 20.

Jei įvesime kitą įvestį, jo „user_id“ bus 21, o seka vyks ta pačia logika. Taip iš naujo nustatote seką „PostgreSQL“. Atminkite, kad komanda „nustatyti iš naujo“ neturi įtakos esamiems įrašams. Tai tik apibrėžia naują pradinę reikšmę įrašams, kuriuos darote iš naujo nustatę seką.

Išvada

Naudojant PostgreSQL, galimybė automatiškai generuoti sveikųjų skaičių reikšmes pirminio rakto stulpelyje viską supaprastina. Jei turite esamą seką, galite naudoti ALTER SEQUENCE
komanda su parinktimi RESTART WITH, kad nurodytumėte, kurią seką norite nustatyti iš naujo ir kokią reikšmę nustatyti kaip paskutinę sekos reikšmę. Tokiu būdu naujų įrašų sveikasis skaičius bus sukurtas remiantis nauja paskutine verte. Norėdami suprasti, kaip veikia PostgreSQL sekos nustatymas iš naujo, žr. pateiktą pavyzdį.