Hvordan konfigurere PostgreSQL Auto-increment Primary Key?

How Setup Postgresql Auto Increment Primary Key



Det kan være anledninger hvor du bygger og vedlikeholder tabeller i PostgreSQL når du vil ha bestemte verdier for en kolonne som genereres på forespørsel. Dette gjelder spesielt ID -kolonner som fungerer som tabellens hovednøkkel. Heldigvis tillater SERIAL-pseudo-typen å gjøre en heltinkende serie helt praktisk. En serie er en type databaseobjekt i PostgreSQL som produserer en serie indekser eller heltall. En PostgreSQL -sekvens produserer en streng med forskjellige heltall, noe som gjør den egnet til å brukes som hovednøkkel når du genererer en ny tabell. Vi vil demonstrere for deg hvilke automatiske økningsmenyer i PostgreSQL, og vi vil bruke SERIAL pseudo-typen gjennom denne guiden.

Syntaks:

Den generelle syntaksen for å opprette hovednøkkelen for automatisk økning er som følger:







>>OPPRETT TABELL tabellnavn( idSERIELL);

La oss nå se nærmere på CREATE TABLE -erklæringen:



  • PostgreSQL genererer først en serieenhet. Den produserer den neste verdien i serien og angir den som feltets standardreferanseverdi.
  • PostgreSQL bruker den implisitte begrensningen NOT NULL på et id -felt siden en serie produserer numeriske verdier.
  • ID -feltet vil bli tildelt som innehaver av serien. Hvis ID -feltet eller selve tabellen utelates, blir sekvensen kastet.

For å få begrepet automatisk økning, må du kontrollere at PostgreSQL er montert og konfigurert på systemet ditt før du fortsetter med illustrasjonene i denne veiledningen. Åpne PostgreSQL-kommandolinjeskallet fra skrivebordet. Legg til servernavnet du vil jobbe med, ellers la det stå som standard. Skriv databasenavnet som ligger på serveren du vil jobbe med. Hvis du ikke vil endre det, la det stå som standard. Vi skal bruke testdatabasen, derfor har vi lagt den til. Du kan også jobbe med standardporten 5432, men du kan også endre den. Til slutt må du oppgi brukernavnet for databasen du velger. La den stå som standard hvis du ikke vil endre den. Skriv inn passordet for det valgte brukernavnet, og trykk Enter fra tastaturet for å begynne å bruke kommandoskallet.







Bruke SERIELT søkeord som datatype:

Når vi lager en tabell, legger vi vanligvis ikke til søkeordet SERIAL i hovedkolonnefeltet. Dette betyr at vi må legge til verdiene i hovednøkkelkolonnen mens vi bruker INSERT -setningen. Men når vi bruker søkeordet SERIAL i spørringen mens vi lager en tabell, trenger vi ikke å legge til primære kolonneverdier mens vi setter inn verdiene. La oss ta et blikk på det.

Eksempel 01:

Lag en tabelltest med to kolonner -ID og navn. Kolonne -ID er definert som hovednøkkel -kolonnen ettersom datatypen er SERIAL. På den annen side er kolonnenavnet definert som datatypen TEKST IKKE NULL. Prøv kommandoen nedenfor for å lage et bord, og tabellen vil bli opprettet effektivt som vist på bildet nedenfor.



>>OPPRETT TABELL Test( idSERIELL PRIMÆR NØKKEL, navn TEKST IKKE NULL);

La oss sette inn noen verdier i kolonnenavnet til den nyopprettede tabellen TEST. Vi vil ikke legge til noen verdi i kolonne -ID. Du kan se at verdiene har blitt satt inn med INSERT -kommandoen som angitt nedenfor.

>>Sett inn i testen(Navn)VERDIER('Aqsa'),('Rimsha'),('Khan');

Det er på tide å sjekke postene i tabellen 'Test'. Prøv SELECT -instruksjonene nedenfor i kommandoskallet.

>>PLUKKE UT*FRA test;

Fra utdataene nedenfor kan du legge merke til at kolonne -IDen automatisk har noen verdier i seg selv om vi ikke har lagt til noen verdier fra INSERT -kommandoen på grunn av datatypen SERIAL vi har spesifisert for kolonne -ID. Slik fungerer datatypen SERIAL alene.

Eksempel 02:

En annen måte å kontrollere verdien av SERIAL -datatypekolonnen på er ved å bruke søkeordet RETURNING i INSERT -kommandoen. Erklæringen nedenfor oppretter en ny linje i testtabellen og gir verdien for id -feltet:

>>Sett inn i testen(Navn)VERDIER('Hassam')TILBAKEid;

Ved å kontrollere postene i tabellen Test ved hjelp av SELECT -spørringen, fikk vi utdataene nedenfor som vist på bildet. Den femte rekorden er effektivt lagt til bordet.

>>PLUKKE UT*FRA test;

Eksempel 03:

Den alternative versjonen av innsatsforespørselen ovenfor bruker søkeordet STANDARD. Vi bruker kolonne -ID -navn i INSERT -kommandoen, og i VALUES -delen gir vi det DEFAULT -søkeordet som verdi. Søket nedenfor fungerer på samme måte ved utførelse.

>>Sett inn i testen(id, Navn)VERDIER(DEFAULT, 'Race');

La oss sjekke tabellen igjen ved å bruke SELECT -spørringen som følger:

>>PLUKKE UT*FRA test;

Du kan se fra utdataene nedenfor, den nye verdien har blitt lagt til mens kolonne -ID har blitt øket som standard.

Eksempel 04:

Sekvensnummeret til kolonnen SERIAL -feltet finnes i en tabell i PostgreSQL. Metoden pg_get_serial_sequence () brukes for å oppnå dette. Vi må bruke funksjonen currval () sammen med metoden pg_get_serial_sequence (). I denne spørringen vil vi gi tabellnavnet og SERIAL -kolonnenavnet i parameterne for funksjonen pg_get_serial_sequence (). Som du kan se, har vi angitt tabell Test og kolonne -ID. Denne metoden brukes i spørreeksemplet nedenfor:

>>Velg kurve(pg_get_serial_sequence('Test', 'id'));

Det er verdt å merke seg at funksjonen currval () hjelper oss med å trekke ut sekvensens siste verdi, som er 5. Bildet under er en illustrasjon av hvordan forestillingen kan se ut.

Konklusjon:

I denne veiledningen har vi demonstrert hvordan du bruker SERIAL pseudo-typen til å automatisk øke i PostgreSQL. Ved å bruke en serie i PostgreSQL er det enkelt å bygge et sett med tall for automatisk økning. Forhåpentligvis vil du kunne bruke SERIAL -feltet på tabellbeskrivelsene ved å bruke illustrasjonene våre som referanse.