Cum să resetați o secvență în PostgreSQL

Cum Sa Resetati O Secventa In Postgresql



Utilizarea secvenței PostgreSQL este o modalitate eficientă de a lucra cu o valoare de auto-incrementare, în special pentru cheile primare. Când valoarea de pornire nu este definită, auto-incrementul pentru INT va începe la 0. Cu toate acestea, puteți specifica ce valoare de pornire să utilizați pentru secvență în coloana dvs. de auto-increment.

Mai mult, dacă întâmpinați o situație care vă impune să schimbați următoarea valoare din secvență, puteți reseta rapid secvența și să specificați cu ce valoare să începeți pentru următoarea intrare din tabel. Toate detaliile pe care ar trebui să le cunoașteți despre cum să resetați o secvență în PostgreSQL sunt detaliate în această postare. Aruncă o privire!

Exemplu despre cum să resetați o secvență în PostgreSQL

Cu o coloană INT, puteți crea o secvență de auto-incrementare și o puteți utiliza ca cheie primară pentru tabelul dvs. În acest fel, nu va trebui să introduceți valorile acesteia atunci când rulați o interogare INSERT, deoarece valorile întregi vor fi generate automat. Odată ce secvența este creată, comanda ALTER SEQUENCE vă permite să reporniți secvența și să specificați o nouă valoare de pornire pentru noile intrări.







Pentru acest exemplu, vom lucra cu următorul tabel „user_details”. Accentul nostru este coloana „user_id”, care este o secvență de incrementare automată care începe de la 100.





Pentru a enumera diferitele secvențe din baza de date, rulați următoarea comandă:





\ds

Pentru cazul nostru, vizam secvența „user_id”.



Pentru a obține mai multe detalii despre secvență, rulați interogarea „selectați”, așa cum se arată în următoarele:

SELECT * FROM nume_secventa;

Putem vedea că ultima valoare din secvența existentă este 104. Resetăm această valoare și definim o nouă valoare pe care o vor avea noile intrări.

Pentru a reseta secvența PostgreSQL, utilizați următoarea comandă:

ALTER SEQUENCE nume_secvență RESTART WITH valoare;

Pentru cazul nostru, să presupunem că vrem să repornim secvența și să începem noile intrări la 20. După rularea următoarei comenzi, obținem o ieșire, așa cum se arată în continuare, care confirmă că secvența a fost modificată.

Dacă rulăm din nou comanda anterioară pentru a obține detaliile secvenței noastre folosind instrucțiunea SELECT, putem vedea că noua „last_value” pentru acest caz este valoarea pe care am specificat-o cu comanda ALTER.

Să inserăm o nouă intrare în tabelul nostru pentru a vedea ce se întâmplă. Următoarea imagine arată interogarea INSERT și rezultatele pe care le obținem după rularea instrucțiunii SELECT. Observați cum noua intrare are „user_id” setat la 20. Toate intrările noi pe care le facem vor avea „user_id” generat pe baza ultimei valori care este 20.

Dacă facem o altă intrare, „user_id”-ul său va fi 21 și secvența va continua folosind aceeași logică. Așa resetați o secvență în PostgreSQL. Rețineți că comanda „resetare” nu afectează înregistrările existente. Acesta definește doar noua valoare de pornire pentru intrările pe care le faceți după resetarea secvenței.

Concluzie

Cu PostgreSQL, a avea o modalitate de a genera automat valorile întregi în coloana cheii primare simplifică lucrurile. Când aveți o secvență existentă, puteți utiliza ALTER SEQUENCE
comanda cu opțiunea RESTART WITH pentru a specifica ce secvență doriți să resetați și ce valoare să setați ca ultima valoare din secvență. În acest fel, noile intrări vor avea valoarea întreagă generată pe baza ultimei valori noi. Consultați exemplul prezentat pentru a înțelege cum funcționează resetarea unei secvențe PostgreSQL.