Paano I-reset ang isang Sequence sa PostgreSQL

Paano I Reset Ang Isang Sequence Sa Postgresql



Ang paggamit ng pagkakasunud-sunod ng PostgreSQL ay isang epektibong paraan ng pagtatrabaho sa isang halaga ng auto-increment, lalo na para sa mga pangunahing key. Kapag hindi tinukoy ang panimulang value, magsisimula ang auto-increment para sa INT sa 0. Gayunpaman, maaari mong tukuyin kung anong panimulang value ang gagamitin para sa sequence sa iyong column ng auto-increment.

Bukod dito, kung nakakuha ka ng isang sitwasyon na nangangailangan sa iyo na baguhin ang susunod na halaga sa pagkakasunud-sunod, maaari mong mabilis na i-reset ang pagkakasunud-sunod at tukuyin kung anong halaga ang magsisimula para sa susunod na entry sa talahanayan. Ang lahat ng mga detalye na dapat mong malaman tungkol sa kung paano i-reset ang isang sequence sa PostgreSQL ay detalyado sa post na ito. Tingnan mo!

Halimbawa sa Paano Mag-reset ng Sequence sa PostgreSQL

Sa isang column ng INT, maaari kang gumawa ng auto-increment sequence at gamitin ito bilang pangunahing key para sa iyong talahanayan. Sa ganoong paraan, hindi mo na kakailanganing ilagay ang mga value nito kapag nagpapatakbo ng INSERT query dahil awtomatikong mabubuo ang mga integer value. Sa paggawa ng sequence, hinahayaan ka ng ALTER SEQUENCE command na i-restart ang sequence at tumukoy ng bagong panimulang value para sa mga bagong entry.







Para sa halimbawang ito, gagana kami sa sumusunod na talahanayan ng 'mga_detalye ng gumagamit'. Ang aming focus ay ang column na 'user_id' na isang auto-increment sequence na nagsisimula sa 100.





Upang ilista ang iba't ibang mga sequence sa iyong database, patakbuhin ang sumusunod na command:





\ds

Para sa aming kaso, tina-target namin ang sequence ng 'user_id'.



Upang makakuha ng higit pang mga detalye sa pagkakasunud-sunod, patakbuhin ang query na 'piliin' tulad ng ipinakita sa sumusunod:

PUMILI * MULA sa sequence_name;

Makikita natin na ang huling value sa umiiral na sequence ay 104. I-reset natin ang value na ito at tukuyin ang isang bagong value na magkakaroon ng mga bagong entry.

Upang i-reset ang pagkakasunud-sunod ng PostgreSQL, gamitin ang sumusunod na command:

ALTER SEQUENCE sequence_name MAGSIMULA SA halaga;

Para sa aming kaso, sabihin nating gusto naming i-restart ang sequence at simulan ang mga bagong entry sa 20. Pagkatapos patakbuhin ang sumusunod na command, makakakuha kami ng output, tulad ng ipinapakita sa sumusunod, na nagpapatunay na ang sequence ay binago.

Kung muling patakbuhin namin ang naunang command para makuha ang mga detalye ng aming sequence gamit ang SELECT statement, makikita namin na ang bagong 'last_value' para sa kasong ito ay ang value na tinukoy namin sa ALTER command.

Magpasok tayo ng bagong entry sa aming talahanayan upang makita kung ano ang mangyayari. Ang sumusunod na larawan ay nagpapakita ng INSERT query at ang mga resulta na nakukuha namin pagkatapos patakbuhin ang SELECT statement. Pansinin kung paano nakatakda ang 'user_id' ng bagong entry sa 20. Ang lahat ng bagong entry na gagawin namin ay mabubuo ang kanilang 'user_id' batay sa huling halaga na 20.

Kung gagawa kami ng isa pang input, ang 'user_id' nito ay magiging 21 at ang sequence ay magpapatuloy gamit ang parehong logic. Iyan ay kung paano mo i-reset ang isang sequence sa PostgreSQL. Tandaan na ang command na 'reset' ay hindi makakaapekto sa mga kasalukuyang record. Tinutukoy lamang nito ang bagong panimulang halaga para sa mga entry na gagawin mo pagkatapos i-reset ang sequence.

Konklusyon

Sa PostgreSQL, ang pagkakaroon ng isang paraan upang awtomatikong mabuo ang mga halaga ng integer sa iyong pangunahing hanay ng key ay pinapasimple ang mga bagay. Kapag mayroon kang umiiral na sequence, maaari mong gamitin ang ALTER SEQUENCE
command na may opsyong RESTART WITH para tukuyin kung aling sequence ang gusto mong i-reset at kung anong value ang itatakda bilang huling value sa sequence. Sa ganoong paraan, ang mga bagong entry ay magkakaroon ng integer na halaga na nabuo batay sa bagong huling halaga. Sumangguni sa ipinakitang halimbawa upang maunawaan kung paano gumagana ang pag-reset ng pagkakasunod-sunod ng PostgreSQL.