Hur man återställer en sekvens i PostgreSQL

Hur Man Aterstaller En Sekvens I Postgresql



Att använda PostgreSQL-sekvensen är ett effektivt sätt att arbeta med ett automatiskt inkrementeringsvärde, speciellt för primärnycklar. När startvärdet inte är definierat, börjar den automatiska ökningen för INT vid 0. Du kan dock ange vilket startvärde som ska användas för sekvensen i kolumnen för automatisk ökning.

Dessutom, om du får en situation som kräver att du ändrar nästa värde i sekvensen, kan du snabbt återställa sekvensen och ange vilket värde du ska börja med för nästa post i tabellen. Alla detaljer du bör veta om hur du återställer en sekvens i PostgreSQL beskrivs i det här inlägget. Ta en titt!

Exempel på hur man återställer en sekvens i PostgreSQL

Med en INT-kolumn kan du skapa en automatisk ökningssekvens och använda den som primärnyckel för din tabell. På så sätt behöver du inte ange dess värden när du kör en INSERT-fråga eftersom heltalsvärdena genereras automatiskt. När sekvensen skapas låter kommandot ALTER SEQUENCE dig starta om sekvensen och ange ett nytt startvärde för de nya posterna.







För det här exemplet kommer vi att arbeta med följande 'user_details'-tabell. Vårt fokus är kolumnen 'user_id' som är en automatisk ökningssekvens som börjar på 100.





För att lista de olika sekvenserna i din databas, kör följande kommando:





\ds

I vårt fall riktar vi oss mot sekvensen 'user_id'.



För att få mer information om sekvensen, kör 'select'-frågan som visas i följande:

SELECT * FROM sekvensnamn;

Vi kan se att det sista värdet i den befintliga sekvensen är 104. Vi återställer detta värde och definierar ett nytt värde som de nya posterna kommer att ha.

För att återställa PostgreSQL-sekvensen, använd följande kommando:

ALTER SEQUENCE sequence_name STARTA OM MED värde;

För vårt fall, låt oss säga att vi vill starta om sekvensen och starta de nya posterna vid 20. Efter att ha kört följande kommando får vi en utdata, som visas i följande, som bekräftar att sekvensen har ändrats.

Om vi ​​kör det tidigare kommandot igen för att få detaljerna om vår sekvens med hjälp av SELECT-satsen, kan vi se att det nya 'last_value' för det här fallet är det värde som vi angav med ALTER-kommandot.

Låt oss infoga en ny post i vår tabell för att se vad som händer. Följande bild visar INSERT-frågan och resultaten som vi får efter att ha kört SELECT-satsen. Lägg märke till hur den nya posten har sitt 'user_id' satt till 20. Alla nya poster som vi gör kommer att ha sitt 'user_id' genererat baserat på det sista värdet som är 20.

Om vi ​​gör en annan inmatning kommer dess 'user_id' att vara 21 och sekvensen kommer att fortsätta med samma logik. Det är så du återställer en sekvens i PostgreSQL. Observera att kommandot 'återställ' inte påverkar de befintliga posterna. Den definierar bara det nya startvärdet för de inmatningar som du gör efter att ha återställt sekvensen.

Slutsats

Med PostgreSQL förenklar det att ha ett sätt att automatiskt generera heltalsvärdena i din primärnyckelkolumn. När du har en befintlig sekvens kan du använda ALTER SEQUENCE
kommandot med alternativet RESTART WITH för att ange vilken sekvens du vill återställa och vilket värde som ska ställas in som det sista värdet i sekvensen. På så sätt kommer nya poster att generera heltalsvärdet baserat på det nya sista värdet. Se det presenterade exemplet för att förstå hur återställning av en PostgreSQL-sekvens fungerar.