Sådan udføres PostgreSQL Auto Increment

Sadan Udfores Postgresql Auto Increment



En måde at sikre de unikke identiteter i din PostgreSQL-database er at bruge funktionen til automatisk stigning. Når den er aktiveret, genererer denne funktion en unik identitet for hver ny post i din tabel. Med auto-increment, hvis du forsøger at indsætte en ny værdi med den samme unikke identifikator, vil det give en fejl. Den automatiske stigning kan bruges i forskellige tilfælde, og du kan definere, hvordan du ønsker, at den unikke identifikator skal genereres. Flere detaljer om PostgreSQL auto-increment er detaljeret i dette indlæg. Læs videre!

To metoder til PostgreSQL Auto Increment

Når du opretter en database, bør du have en primær nøgle til hver tabel for at sikre, at der ikke vises dubletter i tabellerne. En måde at oprette de primære nøgler på er at bruge auto-increment-funktionen for INT-datatypen. PostgreSQL genererer den primære nøgleværdi for alle poster, hvilket frigør udvikleren for besværet med manuelt at indtaste den primære.

Der er to tilgange, som du kan bruge til at oprette automatisk stigning i din PostgreSQL-database.







Metode 1: Brug af SERIAL Pseudo-Type

Standardmåden til at oprette auto-increment for primære nøgler i din database er at bruge SERIEL nøgleordet. Når den bruges, opretter pseudotypen SERIAL en sekvens til at generere værdierne. Den noterer den næste værdi i sekvensen, og hver gang du indsætter en ny værdi, får den en unik identitet.



Bemærk, at denne automatiske stigning er tildelt en INT-datatype og bliver slettet, når tabellen eller kolonnen slettes.



Her er syntaksen til at oprette en automatisk stigning:





SKAB BORD TABLE_NAME ( id SERIAL data_type ) ;

For vores tilfælde, lad os oprette en tabel med navnet 'detaljer', som indeholder 'user_id' som vores auto-increment og primærnøgle. Vi inkluderer også to andre kolonner.



Når vi ønsker at indsætte værdierne i vores tabel, indsætter vi kun for de andre kolonner og udelader kolonnen med automatisk stigning, da dens værdier genereres automatisk. Her er et eksempel, hvor vi tilføjer fem poster til vores tabel:

Når vi bruger SELECT-sætningen til at kontrollere tabelposterne, skal du bemærke, at kolonnen 'user_id' indeholder unikke identiteter, som i vores tilfælde er tal, der starter fra 1. Det er sådan, man laver PostgreSQL auto-inkrementer ved hjælp af SERIAL-pseudo-typen.

Metode 2: Oprettelse af en sekvens

Når du bruger SERIAL-pseudotypen til at oprette de automatiske stigningsværdier, kontrollerer du ikke, hvordan dine unikke identiteter bliver skabt. For det foregående eksempel har vi set, at vores unikke identiteter starter fra 1. Men hvis du vil kontrollere disse værdier, lad os sige, at du vil definere, hvornår du skal begynde at generere dem, skal du oprette en tilpasset sekvens.

PostgreSQL har SEQUENCE-indstillingen, hvor du kan angive det kolonnenavn, der skal bruges til den automatiske stigning, og definere startværdien for kolonnen. For eksempel, hvis vi vil starte værdierne fra 100, opretter vi følgende tilpassede sekvens:

CREATE SEQUENCE kolonnenavn startværdi;

Efter at have oprettet sekvensen, kan du nu oprette din tabel. Bemærk, at du skal bruge det samme kolonnenavn, hvor du oprettede en sekvens for ligesom 'nextval('holder')' for den oprettede tabel. På den måde refererer PostgreSQL til sekvensen for at vide, hvilken rækkefølge der skal følges, når den unikke identitet for kolonnerne genereres.

Vi kører følgende kommando for at oprette vores tabel:

Fortsæt med at indsætte værdierne i den oprettede tabel for de relevante kolonner.

Når vi kører 'vælg'-forespørgslen for at vise tabelposterne, kan vi se, at det lykkedes os at kontrollere vores automatiske stigning. Kolonnen 'user_id' starter sin værdi ved 100 og genererer de efterfølgende værdier for de andre poster, som vi indsætter i tabellen.

Det er den anden måde at skabe den automatiske stigning for PostgreSQL.

Konklusion

Oprettelse af en automatisk stigning er en fordel for at skabe unikhed i din tabel. Når du vil definere en primær nøgle til din tabel, skal du bruge funktionen til automatisk stigning for INT-datatypen. PostgreSQL genererer værdierne automatisk og sikrer, at der ikke findes dubletter i din tabel. Vi definerede, hvordan man opretter den automatiske stigning for PostgreSQL og gav to eksempler på de to metoder, du kan bruge. Begge metoder er anvendelige afhængigt af det scenarie, du har. Prøv dem!