Postgres setVal -sekvens

Postgres setVal -sekvens
PostgreSQL -sekvenser opprettes for automatisk å sette inn eller oppdatere verdier på funksjonssamtaler som NextVal, SetVal og CurrVal -funksjoner. I denne artikkelen vil vi diskutere SetVal -funksjonen som er til stede i listen over sekvensfunksjoner. SetVal -funksjonen kalles i en sekvens når vi må endre neste verdi i den gjeldende sekvensen på grunn av noen forhold. Den manuelle endringen i en sekvens gjøres av SetVal -funksjonen i PostgreSQL.

Sekvens Funksjoner i SQL

Når vi bruker en kolonne i tabellen vår som har sekvensielle verdier som et serienummer eller et rulletall som øker med et mønster, kan vi lage en sekvens for å møte problemet. I denne sekvensen vil vi gi flere begrensninger i henhold til våre behov. SQL -syntaks for å lage en sekvens er som følger:

Navnet på serien må skrives mot "Create Sequence" -kommandoen i syntaks ovenfor. Startverdien av sekvensen blir deretter skrevet til "Start med" -kommandoen, etterfulgt av den trinnvise verdien til "Increment by" -kommandoen. Kommandoene "MinValue" og "MaxValue" vil bli brukt til å etablere sekvensens minimumsverdi eller maksimumsverdi. Vi vil forklare om sekvensen skal ende når den når maksimal verdi eller returnerer til den opprinnelige verdien i den siste linjen i sekvensen.

Når vi må endre en sekvens mellom på grunn av noen begrensninger eller feil i programmet, bruker vi flere sekvensfunksjoner i PostgreSQL. De blir også referert til som sekvensmanipulasjonsfunksjonene. Funksjonene som er assosiert med begrepet sekvensfunksjon er som følger:

  1. NextVal -funksjonen.
  2. Currval -funksjon.
  3. LastVal -funksjon.
  4. SetVal -funksjon.

I denne guiden vil vi snakke om SetVal -funksjonen i PostgreSQL.

Setval Sekvens Manipulasjonsfunksjon

SetVal -funksjonen tilbakestiller den gjeldende sekvens -tellervariabelen som holder øker i henhold til begrensningene som er satt av brukeren og gir den en sjekk på hvordan sekvensen skal fortsette etter dette punktet. SetVal -funksjonen er justerbar etter våre behov og kan ta forskjellige sett med parametere som navnet på sekvensen, den neste verdien som NextVal -funksjonen ville returnere, og den boolske algebra -begrensningen av ekte og usant.

SetVal -funksjonen brukes vanligvis i forbindelse med "Select" -kommandoen, der brukeren spesifiserer begrensningene og deretter spesifiserer rekkefølgen som endringen må gjøres i tabellen.

SetVal -funksjonen manipulerer den neste verdien av NextVal -funksjonen, da den tar den gjeldende NextVal -verdien som en parameter. Hvis den tredje parameteren som er tilstanden til verdien som enten kan være sann eller falsk, bestemmes, blir den neste neste valverdien endret i henhold til den gitte tilstanden som er samlet på kjøretiden når sekvensen er lokalisert. La oss se på syntaksen for å utføre denne manipulasjonsfunksjonen i PostgreSQL:

>> velg setVal (navnet på sekvensen, neste verdi av sekvensen, sann eller falsk);

Ovennevnte syntaks for å utføre denne funksjonen i PostgreSQL kan også skrives som:

>> velg setVal (navnet på sekvensen, neste verdi av sekvensen);

Vi kan velge begge disse uttrykkene for å utføre SetVal -funksjonen i PostgreSQL -miljøet, men det andre uttrykket tar ikke inn den boolske sjekken som parameter og gjør det til en mindre raffinert tilstand av funksjonen.

Nå som vi kjenner syntaks og arbeid med setval -funksjonen, vil vi se på kjerneformålet denne funksjonen tjener i PostgreSQL -miljøet.

Manipulering av en sekvens med setval -funksjonen

Som vi diskuterte ovenfor begrepet sekvenser og hvordan vi lager en sekvens. I dette tilfellet vil vi lage en sekvens først for å forstå og manipulere den sekvensen med SetVal -funksjonen. Vi vil opprette en sekvens for rulletall studenter i en klasse ved å skrive denne koden som vist i øyeblikksbildet nedenfor:

Som du ser fra syntaks ovenfor, har vi konstruert en sekvens kalt ”Sq 1” som begynner med tallet 001 og økes med en ved hver iterasjon. Minimumsverdien for denne sekvensen er 0 mens maksimalverdien er 100. Denne sekvensen går i en syklus som betyr at når maksimalverdien oppnås vil den starte på nytt fra 001, da det antyder at klassen er full, og den neste studenten må legges til en annen klasse.

La oss nå anta at en student faller fra en klasse etter at dataverdiene er satt inn av NextVal -funksjonen, vi må endre sekvensen for å tilordne rulletallene i en hierarkisk rekkefølge etter setVal -funksjonen.

I dette kodestykket har vi satt neste verdi av NextVal -funksjonen til “012” ved å oppgi den som falsk. Så studentens data som vi vil legge inn etter "012" -rullnummerstudenten, som droppet ut av klassen vi automatisk får "012" rullenummeret som du kan se i demonstrasjonen nedenfor:

Du kan bekrefte utgangen fra det vedlagte bildet.

Da vi utførte innsatsspørsmålet for å legge inn en verdi i tabellen, ga NextVal -funksjonen verdien som ble satt av SetVal -funksjonen i sekvensen SQ_1.

Annerledes Måter å bruke setVal -funksjonen

Hvis vi må sikre at den siste verdien av NextVal -funksjonen er sann, og vi kan legge til den andre verdien i henhold til begrensningene som er definert i sekvensen, kan vi skrive denne spørringen på to forskjellige måter i PostgreSQL -miljøet:

  1. Setval funksjon uten den boolske staten.
  2. Setval funksjon med den boolske staten.

Setval Funksjon uten den boolske staten

Syntaksen for utførelse av setval -funksjonen uten den boolske tilstanden er angitt nedenfor:

>> Velg SetVal ('SEQ_1', 052);

Utgangen kan bekreftes fra det vedlagte skjermbildet.

I syntaks ovenfor vil den neste verdien av NextVal -funksjonen bli satt til “053”, noe som betyr at den nyeste verdien av funksjonen brukes.

Setval funksjon med den boolske staten

SetVal -funksjonen kan også utføres med den boolske funksjonen, uttalelsen for det er:

>> Velg SetVal ('SEQ_1', 052, True);

Utgangen kan bekreftes fra det vedlagte skjermbildet.

I begge de ovennevnte eksemplene vil den neste verdien av NextVal -funksjonen bli satt til “053”, da den tilfredsstiller begrensningen at den siste verdien av NextVal -funksjonen brukes. I utgangen ovenfor, når vi satte inn neste verdi ved hjelp av en Sett inn spørring med NextVal -funksjonen i sekvensen etter 52 ga den 53 i tabellen som vist ovenfor.

Konklusjon

I denne artikkelen har vi lært om begrepet sekvenser. Vi diskuterte hvorfor vi bruker disse sekvensene i tabellene våre for å generere verdier i denne artikkelen. De forskjellige sekvensfunksjonene som brukes til å endre sekvensene i PostgreSQL ble også diskutert. En av dem var SetVal -funksjonen som vi diskuterte i en stor prøvelse i denne artikkelen. De forskjellige brukstypene denne funksjonen kan brukes også ble diskutert. Til slutt så vi også på hvordan denne funksjonen fungerer i PostgreSQL -miljøet med sine forskjellige typer begrensninger gitt i parameteren.