Två metoder för PostgreSQL Auto Increment
När du skapar en databas bör du ha en primärnyckel för varje tabell för att säkerställa att inga dubbletter visas i tabellerna. Ett sätt att skapa primärnycklarna är att använda den automatiska ökningsfunktionen för INT-datatypen. PostgreSQL genererar det primära nyckelvärdet för alla poster, vilket befriar utvecklaren från besväret med att manuellt skriva in den primära.
Det finns två metoder som du kan använda för att skapa automatisk inkrement i din PostgreSQL-databas.
Metod 1: Använda SERIAL Pseudo-Type
Standardsättet för att skapa auto-inkrement för primärnycklar i din databas är att använda nyckelordet SERIEL. När den används skapar pseudotypen SERIAL en sekvens för att generera värdena. Den noterar nästa värde i sekvensen, och varje gång du infogar ett nytt värde tilldelas det en unik identitet.
Observera att denna automatiska ökning tilldelas en INT-datatyp och tas bort när tabellen eller kolumnen släpps.
Här är syntaxen för att skapa en automatisk ökning:
SKAPA TABELL TABLE_NAME ( id SERIAL data_type ) ;
För vårt fall, låt oss skapa en tabell med namnet 'detaljer' som innehåller 'user_id' som vår automatiska ökning och primärnyckel. Vi inkluderar även två andra kolumner.
När vi vill infoga värdena i vår tabell, infogar vi bara för de andra kolumnerna och utelämnar kolumnen för automatisk ökning eftersom dess värden genereras automatiskt. Här är ett exempel där vi lägger till fem poster i vår tabell:
När vi använder SELECT-satsen för att kontrollera tabellposterna, lägg märke till att kolumnen 'user_id' innehåller unika identiteter som i vårt fall är siffror som börjar från 1. Det är så man gör PostgreSQL auto-inkrement med pseudotypen SERIAL.
Metod 2: Skapa en sekvens
När du använder SERIAL-pseudotypen för att skapa de automatiska ökningsvärdena, kontrollerar du inte hur dina unika identiteter skapas. För det tidigare exemplet har vi sett att våra unika identiteter börjar från 1. Men om du vill kontrollera dessa värden, låt oss säga att du vill definiera när du ska börja generera dem, måste du skapa en anpassad sekvens.
PostgreSQL har alternativet SEQUENCE där du kan ange kolumnnamnet som ska användas för den automatiska ökningen och definiera startvärdet för kolumnen. Om vi till exempel vill börja värdena från 100 skapar vi följande anpassade sekvens:
CREATE SEQUENCE kolumnnamn startvärde;
Efter att ha skapat sekvensen kan du nu skapa din tabell. Observera att du måste använda samma kolumnnamn där du skapade en sekvens för som 'nextval('holder')' för den skapade tabellen. På så sätt refererar PostgreSQL till sekvensen för att veta vilken ordning som ska följas när den unika identiteten för kolumnerna genereras.
Vi kör följande kommando för att skapa vår tabell:
Fortsätt för att infoga värdena i den skapade tabellen för de relevanta kolumnerna.
När vi kör 'select'-frågan för att lista tabellposterna kan vi se att vi lyckades kontrollera vår automatiska ökning. Kolumnen 'user_id' börjar sitt värde på 100 och genererar de efterföljande värdena för de andra poster som vi infogar i tabellen.
Det är det andra sättet att skapa den automatiska ökningen för PostgreSQL.
Slutsats
Att skapa en automatisk ökning är fördelaktigt för att skapa unikhet i din tabell. När du vill definiera en primärnyckel för din tabell, använd den automatiska ökningsfunktionen för INT-datatypen. PostgreSQL genererar värdena automatiskt och säkerställer att inga dubbletter finns i din tabell. Vi definierade hur man skapar den automatiska ökningen för PostgreSQL och gav två exempel på de två metoderna som du kan använda. Båda metoderna är tillämpliga beroende på vilket scenario du har. Prova dem!