Hur konfigurerar jag PostgreSQL Auto-increment Primary Key?

How Setup Postgresql Auto Increment Primary Key



Det kan finnas tillfällen där du bygger och underhåller tabeller i PostgreSQL när du vill ha specifika värden för en kolumn som genereras på begäran. Detta skulle särskilt gälla för id -kolumner som fungerar som tabellens huvudnyckel. Lyckligtvis tillåter SERIAL-pseudotypen att göra en automatisk stegvis heltalsserie bekväm. En serie är en typ av databasobjekt i PostgreSQL som producerar en serie index eller heltal. En PostgreSQL -sekvens producerar en sträng med olika heltal, vilket gör den lämplig att användas som en primär nyckel när du skapar en ny tabell. Vi kommer att visa dig vilka menyalternativ som automatiskt ökar i PostgreSQL och vi kommer att använda SERIAL-pseudotypen i hela denna guide.

Syntax:

Den allmänna syntaxen för att skapa den primära nyckeln för automatisk ökning är följande:







>>SKAPA TABELL tabellnamn( idSERIE);

Låt oss nu titta mer på CREATE TABLE -deklarationen:



  • PostgreSQL genererar först en serieenhet. Det producerar nästa värde i serien och anger det som fältets standardreferensvärde.
  • PostgreSQL tillämpar den implicita begränsningen NOT NULL på ett id -fält eftersom en serie producerar numeriska värden.
  • Id -fältet kommer att tilldelas som innehavare av serien. Om id -fältet eller själva tabellen utelämnas kommer sekvensen att kasseras.

För att få begreppet automatisk ökning, se till att PostgreSQL är monterat och konfigurerat på ditt system innan du fortsätter med illustrationerna i den här guiden. Öppna kommandoradsskalet PostgreSQL från skrivbordet. Lägg till ditt servernamn som du vill arbeta med, annars lämnar du det till standard. Skriv databasnamnet som ligger på din server som du vill arbeta med. Om du inte vill ändra det lämnar du det som standard. Vi kommer att använda testdatabasen, det är därför vi har lagt till den. Du kan också arbeta med standardporten 5432, men du kan också ändra den. I slutändan måste du ange användarnamnet för databasen du väljer. Lämna det till standard om du inte vill ändra det. Skriv ditt lösenord för det valda användarnamnet och tryck på Enter från tangentbordet för att börja använda kommandoskalet.







Använda SERIAL nyckelord som datatyp:

När vi skapar en tabell lägger vi vanligtvis inte till nyckelordet SERIAL i det primära kolumnfältet. Det betyder att vi måste lägga till värdena i den primära nyckelkolumnen när vi använder INSERT -satsen. Men när vi använder sökordet SERIAL i vår fråga när vi skapar en tabell, ska vi inte behöva lägga till primära kolumnvärden medan vi sätter in värdena. Låt oss ta en titt på det.

Exempel 01:

Skapa ett tabellprov med två kolumner -id och namn. Kolumn -id har definierats som den primära nyckelkolumnen eftersom dess datatyp är SERIAL. Å andra sidan är kolumnnamnet definierat som datatypen TEXT NOT NULL. Prova kommandot nedan för att skapa en tabell och tabellen kommer att skapas effektivt enligt bilden nedan.



>>SKAPA TABELLTest( idSERIAL PRIMÄR NYCKEL, namn TEXT INTE NULL);

Låt oss infoga några värden i kolumnnamnet för den nyskapade tabellen TEST. Vi lägger inte till något värde i kolumn -id: t. Du kan se att värdena har infogats med hjälp av kommandot INSERT enligt nedan.

>>SÄTT IN I test(namn)VÄRDEN('Aqsa'),('Rimsha'),('Khan');

Det är dags att kontrollera posterna i tabellen 'Test'. Prova SELECT -instruktionen nedan i kommandoskalet.

>>VÄLJ*FRÅN Test;

Från utmatningen nedan kan du märka att kolumn -id automatiskt har några värden i sig även om vi inte har lagt till några värden från kommandot INSERT på grund av datatyp SERIAL som vi har angett för kolumn -id. Så här fungerar datatypen SERIAL på egen hand.

Exempel 02:

Ett annat sätt att kontrollera värdet på kolumnen SERIAL datatyp är genom att använda nyckelordet RETURNING i kommandot INSERT. Deklarationen nedan skapar en ny rad i testtabellen och ger värdet för id -fältet:

>>SÄTT IN I test(namn)VÄRDEN('Hassam')ÅTERVÄNDANDEid;

Genom att kontrollera poster i tabelltestet med hjälp av SELECT -frågan fick vi nedanstående utmatning som visas i bilden. Det femte rekordet har effektivt lagts till i tabellen.

>>VÄLJ*FRÅN Test;

Exempel 03:

Den alternativa versionen av ovanstående infogningsfråga använder nyckelordet STANDARD. Vi kommer att använda kolumn -id -namn i INSERT -kommandot, och i avsnittet VÄRDEN ger vi det DEFAULT -nyckelordet som dess värde. Nedanstående fråga fungerar likadant vid körning.

>>SÄTT IN I test(id, namn)VÄRDEN(DEFAULT, 'Race');

Låt oss kontrollera tabellen igen med hjälp av SELECT -frågan enligt följande:

>>VÄLJ*FRÅN Test;

Du kan se från utdata nedan, det nya värdet har lagts till medan kolumn -id har ökats som standard.

Exempel 04:

Sekvensnumret för kolumnfältet SERIAL finns i en tabell i PostgreSQL. Metoden pg_get_serial_sequence () används för att åstadkomma detta. Vi måste använda funktionen currval () tillsammans med metoden pg_get_serial_sequence (). I den här frågan tillhandahåller vi tabellnamnet och dess SERIAL -kolumnnamn i parametrarna för funktionen pg_get_serial_sequence (). Som du kan se har vi angett tabelltest och kolumn -id. Denna metod används i frågeexemplet nedan:

>>VÄLJ currval(pg_get_serial_sequence('Testa', 'id'));

Det är värt att notera att vår currval () -funktion hjälper oss att extrahera sekvensens senaste värde, vilket är 5. Bilden nedan är en illustration av hur prestanda kan se ut.

Slutsats:

I den här guiden har vi visat hur du använder SERIAL-pseudotypen för att automatiskt öka i PostgreSQL. Med en serie i PostgreSQL är det enkelt att bygga en uppsättning nummer automatiskt. Förhoppningsvis kan du använda fältet SERIAL på tabellbeskrivningarna med våra illustrationer som referens.