Hvordan lage en sekvens i Postgres
Sekvensene i postgres opprettes ved å følge syntaks for Create Sequence -kommandoen gitt nedenfor:
Lag sekvensDe betegner navnet du vil sette for en sekvens og inneholder de utvidede egenskapene for den spesifikke sekvensen. Alternativene støttet av Create Sequence er nevnt i følgende avsnitt:
Alternativer støttet av Create Sequence -kommandoen
Det er mulig å lage en sekvens som har brukerdefinerte parametere ved å bruke CREATE SEXENCE-kommandoen. Følgende alternativer støttes av denne kommandoen:
[Økning [av]]: Dette alternativet oppretter sekvensen med et økning av et spesifikt numerisk tall. Standardverdien er 1. Dessuten, hvis økningsverdien er positiv, vil ordren være stigende, mens den synkende orden kan oppnås ved å passere den negative verdien.
[Som SmallInt | Int | Bigint]: Datatypeparameteren lar deg definere sekvensmønsteret. Som standard brukes BigInt som en datatype.
[MinValue] eller [ingen minvalue]: Minimumsverdien for sekvensen kan spesifiseres ved å bruke dette alternativet. Hvis dette alternativet er tomt, er standard maksimumsverdien satt i henhold til den spesifiserte datatypen.
[MaxValue] eller [ingen minvalue]: Dette alternativet er gjensidig for ovennevnte, hvor du kan angi maksimalverdien for sekvensen din. Dessuten, hvis ikke angitt, vurderes standardverdien for datatypen.
[Start [med] start]: Indikerer verdien av begynnelsen av sekvensen.
[Syklus] eller [ingen syklus]: Hvis dette alternativet er definert, gjenopptas sekvensverdien etter å ha nådd maksimal grense. Standardverdien er i dette tilfellet ingen syklus, og den returnerer en feil etter å ha nådd den spesifiserte grensen for sekvensen.
[EID AV ]: Dette alternativet brukes til å knytte sekvensen til en spesifikk kolonne i en tabell. Resultat, når kolonnen blir slettet, blir også sekvensen slettet automatisk.
De kommende seksjonene vil bedre avklare konseptet med en sekvens i Postgres.
Hvordan lage en sekvens i Postgres
Denne delen presenterer flere eksempler for å lage en sekvens fra flere perspektiver. Hvert eksempel refererer til en annen type sekvens.
Eksempel 1: Denne kommandoen oppretter en sekvens kalt “Linuxhint” med startverdien på 5 og økningsverdien på 2:
# Opprett sekvens Linuxhint Inkrement 2 Start 5;Eksempel 2: Videre, hvis økningen er satt til en negativ (-) verdi, starter sekvensen fra maksimal verdi og stiger ned til den spesifiserte minimumsverdien. For eksempel vil kommandoen gitt nedenfor opprette en sekvens med følgende egenskaper:
- “Linux”Som sekvensnavn
- “-2”Som økningsverdi som betyr at sekvensen vil gå ned med en forskjell på -2.
- “10”Som startverdi, siden økningen er en negativ verdi, vil den maksimale verdien også være 10.
- Til slutt brukes også sykkelparameteren
# Opprett sekvens Linux Inkrement -2 MinValue 2 MaxValue 10 Start 10 syklus;Hvordan få sekvenser av en database
Hver sekvens er tilknyttet en database. For eksempel er vi logget på Linuxhint Database og vi har hentet alle sekvenser ved hjelp av kommandoen nedenfor:
I den under-uttalte kommandoen, Relnavn og Sekvensnavn er hentet fra PG_CLASS. De PG_CLASS I Postgres inneholder informasjonen om tabeller om databasen (e).
Du vil se to kategorier i utdataene; Den ene refererer til sekvensene som er tilknyttet den primære nøkkelen til tabeller, og den andre kategorien indikerer de brukerdefinerte sekvensene som opprettes separat (som i delen ovenfor).
# Velg RelName Sequence_Name fra PG_CLASS HVOR VELKINT = 'S';Hvordan få neste/nåværende verdi av en sekvens
Det er flere funksjoner som kan brukes til å få gjeldende og neste verdi av en sekvens i Postgres. NextVal -funksjonen skriver ut neste verdi i en sekvens ved å bruke syntaksen gitt nedenfor:
Velg NextVal ('Sequence-Name')Kommandoen skrevet nedenfor vil skrive ut neste verdi av “Linuxhint” sekvens. Hvis du fortsetter å kjøre NextVal -kommandoen, vil du få neste verdi i henhold til økningen i sekvensen. Som “Linuxhint” Sekvensen økes med 2, så hver neste verdi vil bli skrevet ut etter økt med 2.
# Velg NextVal ('Linuxhint');Når neste verdi er oppnådd, kan du få den gjeldende verdien av sekvensen ved å bruke CurrVal -funksjonen. Currval vil skrive ut utgangen som oppnås ved NextVal -funksjonen. For eksempel har den siste NextVal -funksjonen vist utgang 7, så Currval -resultatet må være 7. Tilsvarende må uansett hvilken verdi oppnås ved hjelp av den nylige NextVal -funksjonen, skrives ut av CurrVal. Currval -funksjonen fungerer på følgende syntaks:
Velg CurrVal ('Sequence-Name')La oss få den nåværende verdien av "Linuxhint" -sekvensen ved hjelp av kommandoen nevnt ovenfor:
# Velg currval ('linuxhint');Dessuten avhenger currval -funksjonen av nestevalfunksjonen. Hvis NextVal -funksjonen ennå ikke er brukt på noen sekvens, kan du ikke bruke Currval -funksjonen for å få gjeldende verdi. For eksempel, hvis vi bruker curval -funksjonen på “Linux” Sekvens som vi ikke har brukt nesteVal -funksjonen, vil følgende feil vises.
# Velg CurrVal ('Linux');Denne feilen kan løses ved å utføre NextVal -funksjonen på sekvensen når vi opplevde den på “Linux” sekvens, og feilen løses.
# Velg NextVal ('Linux');Hvordan slette en sekvens
Du kan slippe hvilken som helst sekvens fra databasen din ved å bruke Drop Sequence Statement of Postgres. I tilfelle å slippe bordet, vil en sekvens som eies av hvilken som helst kolonne bli slettet. Kommandoen som er gitt her, slipper “Linux” sekvens.
# Slipp sekvens hvis eksisterer linux;Konklusjon
Generelt hva som kommer til tankene dine etter å ha fått sekvens ord? En bestilt liste over tall. Ja, konseptet er det samme i Postgres også. Dette innlegget forklarer sekvensbegrepet og demonstrerer dens grunnleggende funksjonalitet i Postgres. Vi har studert sekvensskaping på flere måter i denne guiden. Dessuten diskuteres også de neste og nåværende verdifunksjonene til sekvenser.