PostgreSQL

Sådan konfigureres PostgreSQL automatisk forøgelse af primærnøgle?

Sådan konfigureres PostgreSQL automatisk forøgelse af primærnøgle?
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 gælder især for “id” -kolonner, der fungerer som tabellens primære nøgle. Heldigvis tillader SERIAL-pseudotypen at gøre en automatisk stigende heltal-serie bekvem. 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 viser dig, hvilke menuer der automatisk øges i PostgreSQL, og vi bruger SERIAL-pseudo-typen gennem denne guide.

Syntaks:

Den generelle syntaks til oprettelse af den primære nøgle til automatisk stigning er som følger:

>> Opret TABEL tabelnavn (id SERIAL);

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

For at få begrebet automatisk stigning skal du sikre dig, at PostgreSQL er monteret og konfigureret på dit system, inden du fortsætter med illustrationer i denne vejledning. Åbn PostgreSQL kommandolinjeskal fra skrivebordet. Tilføj dit servernavn, som du vil arbejde på, ellers overlades det til standard. Skriv databasenavnet, der ligger på din server, som du vil arbejde på. Hvis du ikke vil ændre det, skal du lade det være som standard. Vi bruger “test” -databasen, derfor har vi tilføjet den. Du kan også arbejde på standardport 5432, men du kan også ændre den. I sidste ende skal du angive brugernavnet til den database, du vælger. Lad det være 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 SERIAL-nøgleord som datatype:

Når vi opretter en tabel, tilføjer vi normalt ikke nøgleordet SERIAL i det primære kolonnefelt. Dette 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 nøgleordet SERIAL i vores forespørgsel, mens vi opretter en tabel, behøver vi ikke at tilføje primære kolonneværdier, mens vi indsætter værdierne. Lad os se på det.

Eksempel 01:

Opret en tabel "Test" med to kolonner "id" og "navn". Kolonnen “id” er defineret som den primære nøglekolonne, da dens datatype er SERIAL. På den anden side defineres kolonnen "navn" som datatypen TEKST IKKE NUL. Prøv nedenstående kommando for at oprette en tabel, og tabellen oprettes effektivt som vist på billedet nedenfor.

>> Opret TABELTEST (id SERIEN PRIMÆR NØGLE, navn TEKST IKKE NULL);

Lad os indsætte nogle værdier i kolonnen "navn" i den nyoprettede tabel "TEST". Vi tilføjer ikke nogen værdi til kolonnen "id". Du kan se, at værdierne er indsat med succes ved hjælp af INSERT-kommandoen som angivet nedenfor.

>> INSERT INTO Test (name) VALUES ('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 nedenstående output kan du bemærke, at kolonnen “id” automatisk har nogle værdier, selvom vi ikke har tilføjet nogen værdier fra INSERT-kommandoen på grund af den datatype SERIAL, vi har angivet for kolonnen “id”. Sådan fungerer datatypen SERIAL alene.

Eksempel 02:

En anden måde at kontrollere kolonnens værdi på SERIAL-datatypen er ved at bruge nøgleordet RETURNING i INSERT-kommandoen. Erklæringen nedenfor opretter en ny linje i "Test" -tabellen og giver værdien for feltet "id":

>> INSERT INTO Test (name) VALUES ('Hassam') RETURNING id;

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

>> VÆLG * FRA test;

Eksempel 03:

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

>> INSERT INTO Test (id, name) VÆRDIER (STANDARD, 'Raza');

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

>> VÆLG * FRA test;

Du kan se fra nedenstående output, den nye værdi er tilføjet, mens kolonnen "id" er inkrementeret som standard.

Eksempel 04:

Sekvensnummeret i SERIAL-kolonnefeltet kan findes i en tabel i PostgreSQL. Metoden pg_get_serial_sequence () bruges til at opnå dette. Vi er nødt til at bruge currval () -funktionen sammen med metoden pg_get_serial_sequence (). I denne forespørgsel leverer 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 krumning (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". Billedet nedenfor er en illustration af, hvordan forestillingen kunne se ud.

Konklusion:

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

Sådan udvikler du et spil på Linux
For et årti siden ville ikke mange Linux-brugere forudsige, at deres foretrukne operativsystem en dag ville være en populær spilplatform til kommercie...
Open Source-porte med kommercielle spilmotorer
Gratis, open source og cross-platform spilmotorgendringer kan bruges til at spille gamle såvel som nogle af de temmelig nylige spiltitler. Denne artik...
Bedste kommandoliniespil til Linux
Kommandolinjen er ikke kun din største allierede, når du bruger Linux, den kan også være kilde til underholdning, fordi du kan bruge den til at spille...