Sådan opsættes PostgreSQL Auto-increment Primary Key?

How Setup Postgresql Auto Increment Primary Key



Der kan være lejligheder, hvor du bygger og vedligeholder tabeller i PostgreSQL, når du vil have bestemte værdier for en kolonne, der genereres efter anmodning. Dette vil især være tilfældet for id -kolonner, der fungerer som tabellens primære nøgle. Heldigvis tillader SERIAL-pseudo-typen at gøre en auto-trinvis heltalsserie praktisk. En serie er en type databaseobjekt i PostgreSQL, der producerer en række indekser eller heltal. En PostgreSQL -sekvens producerer en streng af forskellige heltal, hvilket gør den velegnet til at blive brugt som en primær nøgle, når der genereres en ny tabel. Vi demonstrerer for dig, hvilke auto-inkrement menuer i PostgreSQL, og vi vil bruge SERIAL pseudo-typen i hele denne vejledning.

Syntaks:

Den generelle syntaks for oprettelse af den primære auto-inkrement-nøgle er som følger:







>>OPRET TABEL tabelnavn( idSERIEL);

Lad os nu se nærmere på CREATE TABLE -erklæringen mere detaljeret:



  • PostgreSQL genererer først en serieenhed. Den producerer den næste værdi i serien og angiver den som feltets standardreferenceværdi.
  • PostgreSQL anvender den implicitte begrænsning NOT NULL på et id -felt, da en serie producerer numeriske værdier.
  • Id -feltet tildeles som indehaveren af ​​serien. Hvis id -feltet eller selve tabellen udelades, kasseres sekvensen.

For at få konceptet med automatisk stigning skal du sikre dig, at PostgreSQL er monteret og konfigureret på dit system, før du fortsætter med illustrationerne i denne vejledning. Åbn PostgreSQL-kommandolinjeskallen fra skrivebordet. Tilføj dit servernavn, som du vil arbejde på, ellers overlad det til standard. Skriv det database navn, der ligger på din server, som du vil arbejde på. Hvis du ikke vil ændre det, forlod det som standard. Vi vil bruge testdatabasen, derfor har vi tilføjet den. Du kan også arbejde på standardporten 5432, men du kan også ændre den. I sidste ende skal du angive brugernavnet til den database, du vælger. Lad det stå som standard, hvis du ikke vil ændre det. Indtast din adgangskode til det valgte brugernavn, og tryk på Enter fra tastaturet for at begynde at bruge kommandoskallen.







Brug af SERIELT søgeord som datatype:

Når vi opretter en tabel, tilføjer vi normalt ikke søgeordet SERIAL i det primære kolonnefelt. Det betyder, at vi skal tilføje værdierne til den primære nøglekolonne, mens vi bruger INSERT -sætningen. Men når vi bruger søgeordet SERIAL i vores forespørgsel, mens vi opretter en tabel, skal vi ikke behøver at tilføje primære kolonneværdier, mens værdierne indsættes. Lad os tage et kig på det.

Eksempel 01:

Opret en tabeltest med to kolonner -id og navn. Kolonne -id'et er blevet defineret som den primære nøglekolonne, da datatypen er SERIAL. På den anden side er kolonnenavnet defineret som datatypen TEKST IKKE NULL. Prøv nedenstående kommando for at oprette en tabel, og tabellen vil blive oprettet effektivt som vist på billedet herunder.



>>Opret tabel( idSERIAL PRIMÆR NØGLE, navn TEKST IKKE NULL);

Lad os indsætte nogle værdier i kolonnenavnet på den nyoprettede tabel TEST. Vi tilføjer ikke nogen værdi til kolonne -id'et. Du kan se, at værdierne er blevet indsat med succes ved at bruge kommandoen INSERT som angivet nedenfor.

>>INSERT INO Test(navn)VÆRDIER('Aqsa'),('Rimsha'),('Khan');

Det er tid til at kontrollere optegnelserne i tabellen 'Test'. Prøv nedenstående SELECT -instruktion i kommandoskallen.

>>VÆLG*FRA test;

Fra output nedenfor kan du bemærke, at kolonne -id'et automatisk har nogle værdier i det, selvom vi ikke har tilføjet nogen værdier fra INSERT -kommandoen på grund af den datatype SERIAL, vi har angivet for kolonne -id. Sådan fungerer datatypen SERIAL alene.

Eksempel 02:

En anden måde at kontrollere værdien af ​​kolonnen SERIAL datatype er ved at bruge søgeordet RETURNING i kommandoen INSERT. Erklæringen nedenfor opretter en ny linje i testtabellen og giver værdien for id -feltet:

>>INSERT INO Test(navn)VÆRDIER('Hassam')VENDE TILBAGEid;

Ved at kontrollere optegnelserne i tabellen Test ved hjælp af SELECT -forespørgslen, fik vi nedenstående output som vist på billedet. Den femte rekord er effektivt tilføjet til tabellen.

>>VÆLG*FRA test;

Eksempel 03:

Den alternative version af ovenstående indsættelsesforespørgsel bruger søgeordet STANDARD. Vi bruger kolonne -id -navn i INSERT -kommandoen, og i afsnittet VÆRDIER giver vi det STANDARD -søgeordet som dets værdi. Nedenstående forespørgsel fungerer det samme ved udførelse.

>>INSERT INO Test(id, navn)VÆRDIER(DEFAULT, 'Race');

Lad os kontrollere tabellen igen ved hjælp af SELECT -forespørgslen som følger:

>>VÆLG*FRA test;

Du kan se på outputtet nedenfor, at den nye værdi er blevet tilføjet, mens kolonne -id er blevet øget som standard.

Eksempel 04:

Sekvensnummeret i feltet SERIAL -kolonne findes i en tabel i PostgreSQL. Metoden pg_get_serial_sequence () bruges til at opnå dette. Vi skal bruge funktionen currval () sammen med metoden pg_get_serial_sequence (). I denne forespørgsel angiver vi tabelnavnet og dets SERIAL -kolonnenavn i parametrene for funktionen pg_get_serial_sequence (). Som du kan se, har vi angivet tabel Test og kolonne -id. Denne metode bruges i nedenstående forespørgselseksempel:

>>VÆLG kurve(pg_get_serial_sequence('Test', 'id'));

Det er værd at bemærke, at vores currval () -funktion hjælper os med at udtrække sekvensens seneste værdi, som er 5. Nedenstående billede er en illustration af, hvordan forestillingen kunne se ud.

Konklusion:

I denne vejledning har vi demonstreret, hvordan du bruger SERIAL pseudo-typen til automatisk stigning i PostgreSQL. Ved hjælp af en serie i PostgreSQL er det enkelt at opbygge et sæt med numre, der automatisk øges. Forhåbentlig vil du være i stand til at anvende SERIAL -feltet på bordbeskrivelserne ved hjælp af vores illustrationer som reference.