Sequenza setval di Postgres

Sequenza setval di Postgres
Le sequenze PostgreSQL vengono create per inserire o aggiornare automaticamente le chiamate di funzione come le funzioni NextVal, Setval e Currval. In questo articolo, discuteremo della funzione setval presente nell'elenco delle funzioni di sequenza. La funzione setval viene chiamata in una sequenza quando dobbiamo modificare il valore successivo nella sequenza corrente a causa di alcune condizioni. L'alterazione manuale in una sequenza viene eseguita dalla funzione setval in PostgreSQL.

Sequenza Funzioni in SQL

Quando utilizziamo una colonna nella nostra tabella che ha valori sequenziali come un numero di serie o un numero di rotolo che aumenta con uno schema, possiamo creare una sequenza per incontrare il problema. In questa sequenza, daremo diversi vincoli in base ai nostri bisogni. La sintassi SQL per la creazione di una sequenza è la seguente:

Il nome della serie deve essere scritto contro il comando "Crea sequenza" nella sintassi sopra. Il valore iniziale della sequenza verrà quindi scritto al comando "inizia con", seguito dal valore incrementale al comando "incremento per". I comandi "Minvalue" e "MaxValue" verranno utilizzati per stabilire il valore minimo della sequenza o il valore massimo. Spiegheremo se la sequenza dovrebbe terminare quando raggiunge il valore massimo o torna al valore originale nell'ultima riga della sequenza.

Quando dobbiamo alterare una sequenza tra a causa di alcuni vincoli o errori nel programma, utilizziamo diverse funzioni di sequenza in PostgreSQL. Sono anche indicati come la manipolazione della sequenza. Le funzioni associate al concetto di funzione di sequenza sono le seguenti:

  1. Funzione nextval.
  2. Funzione Currval.
  3. Funzione Lastval.
  4. Funzione setval.

In questa guida, parleremo sulla funzione setval in Postgresql.

Setval Sequenza Funzione di manipolazione

La funzione setval ripristina la variabile di contatto della sequenza corrente che continua ad incrementare secondo i vincoli impostati dall'utente e gli dà un controllo su come la sequenza dovrebbe procedere dopo questo punto. La funzione setval è regolabile alle nostre esigenze e può assumere diversi set di parametri come il nome della sequenza, il valore successivo che la funzione NextVal restituirebbe e il vincolo di algebra booleano di vero e falso.

La funzione setval viene generalmente utilizzata in associazione con il comando "seleziona", in cui l'utente specifica i vincoli e quindi specifica l'ordine in cui la modifica deve essere effettuata all'interno della tabella.

La funzione setval manipola il valore successivo della funzione NextVal in quanto accetta il valore di corrente di corrente come parametro. Se viene determinato il terzo parametro che è lo stato del valore che può essere vero o falso, il valore successivo successivo viene modificato in base allo stato dato che viene compilato in fase di esecuzione quando si trova la sequenza. Diamo un'occhiata alla sintassi per l'esecuzione di questa funzione di manipolazione in PostgreSQL:

>> Seleziona setval (nome della sequenza, valore successivo della sequenza, true o falso);

La sintassi sopra per l'esecuzione di questa funzione in PostgreSQL può anche essere scritta come:

>> Seleziona setval (nome della sequenza, valore successivo della sequenza);

Possiamo scegliere entrambe queste espressioni per eseguire la funzione setval nell'ambiente PostgreSQL, ma la seconda espressione non assume il controllo booleano come parametro e lo rende uno stato meno raffinato della funzione.

Ora che conosciamo la sintassi e il funzionamento della funzione setval, esamineremo lo scopo fondamentale che questa funzione serve nell'ambiente PostgreSQL.

Manipolazione di una sequenza mediante la funzione setval

Come abbiamo discusso sopra il concetto di sequenze e come creiamo una sequenza. In questo caso, creeremo prima una sequenza per comprendere e manipolare quella sequenza dalla funzione setval. Creeremo una sequenza per i numeri di rollio di studenti in una classe scrivendo questo codice come mostrato nell'istantanea seguente:

Come puoi vedere dalla sintassi sopra, abbiamo costruito una sequenza chiamata "sq 1" che inizia con il numero 001 e viene aumentato di uno ad ogni iterazione. Il valore minimo per questa sequenza è 0 mentre il valore massimo è 100. Questa sequenza va in un ciclo, il che significa che quando si ottiene il valore massimo, ricomincerà da 001 in quanto suggerirebbe che la classe è piena e lo studente successivo deve essere aggiunto a un'altra classe.

Ora supponiamo che uno studente scenda da una classe dopo che i suoi valori di dati sono inseriti dalla funzione NextVal, dovremo alterare la sequenza per assegnare i numeri di rollio in un ordine gerarchico mediante la funzione setval.

In questo pezzo di codice, abbiamo impostato il valore successivo della funzione NextVal su "012" affermandolo come falso. Quindi, i dati dello studente che inseriamo dopo lo studente del numero di rollio "012", che ha abbandonato la classe otteniamo automaticamente il numero di rollio "012" come puoi vedere nella dimostrazione di seguito:

È possibile verificare l'output dall'immagine aggiunta.

Mentre eseguivamo la query Inser per immettere un valore nella tabella, la funzione NextVal ha dato il valore impostato dalla funzione setval nella sequenza SQ_1.

Diverso Modi per utilizzare la funzione setval

Se dobbiamo garantire che l'ultimo valore della funzione NextVal sia vero e possiamo aggiungere l'altro valore secondo i vincoli definiti nella sequenza, possiamo scrivere questa query in due modi diversi nell'ambiente PostgreSQL:

  1. Funzione setval senza lo stato booleano.
  2. Funzione setval con lo stato booleano.

Setval Funzione senza lo stato booleano

La sintassi per l'esecuzione della funzione setval senza lo stato booleano è indicata di seguito:

>> Seleziona setVal ('seq_1', 052);

L'output può essere verificato dallo screenshot aggiunto.

Nella sintassi di cui sopra, il valore successivo della funzione NextVal verrà impostato su "053", il che significa che viene utilizzato il valore più recente della funzione.

Funzione setval con lo stato booleano

La funzione setval può anche essere eseguita con la funzione booleana, la dichiarazione per questo è:

>> Seleziona setVal ('seq_1', 052, true);

L'output può essere verificato dallo screenshot aggiunto.

In entrambi gli esempi di cui sopra il valore successivo della funzione NextVal verrà impostato su "053" in quanto soddisfa il vincolo che viene utilizzato l'ultimo valore della funzione NextVal. Nell'output sopra, quando abbiamo inserito il valore successivo usando una query di inserimento con la funzione NextVal nella sequenza dopo 52 ha dato 53 nella tabella come mostrato sopra.

Conclusione

In questo articolo, abbiamo appreso il concetto di sequenze. Abbiamo discusso del perché utilizziamo queste sequenze nelle nostre tabelle per generare valori in questo articolo. Sono state discusse anche le diverse funzioni di sequenza che vengono utilizzate per alterare le sequenze nel postgresql. Uno di questi era la funzione Setval di cui abbiamo discusso in un grande calvario in questo articolo. Sono stati discussi anche i diversi tipi di usi questa funzione. Alla fine, abbiamo anche esaminato come funziona questa funzione nell'ambiente PostgreSQL con i suoi diversi tipi di vincoli indicati nel parametro.