Come reimpostare una sequenza in PostgreSQL

Come Reimpostare Una Sequenza In Postgresql



L'uso della sequenza PostgreSQL è un modo efficace per lavorare con un valore di incremento automatico, soprattutto per le chiavi primarie. Quando il valore iniziale non è definito, l'incremento automatico per INT inizierà da 0. Tuttavia, è possibile specificare quale valore iniziale utilizzare per la sequenza nella colonna di incremento automatico.

Inoltre, se ti trovi in ​​una situazione che richiede di modificare il valore successivo nella sequenza, puoi reimpostare rapidamente la sequenza e specificare con quale valore iniziare per la voce successiva nella tabella. Tutti i dettagli che dovresti sapere su come reimpostare una sequenza in PostgreSQL sono dettagliati in questo post. Guarda!

Esempio su come reimpostare una sequenza in PostgreSQL

Con una colonna INT, puoi creare una sequenza di incremento automatico e utilizzarla come chiave primaria per la tua tabella. In questo modo, non avrai bisogno di inserirne i valori durante l'esecuzione di una query INSERT poiché i valori interi verranno generati automaticamente. Una volta creata la sequenza, il comando ALTER SEQUENCE consente di riavviare la sequenza e specificare un nuovo valore iniziale per le nuove voci.







Per questo esempio, lavoreremo con la seguente tabella 'user_details'. Il nostro focus è la colonna 'user_id' che è una sequenza di incremento automatico che inizia da 100.





Per elencare le diverse sequenze nel database, esegui il comando seguente:





\ds

Nel nostro caso, prendiamo di mira la sequenza 'user_id'.



Per ottenere maggiori dettagli sulla sequenza, eseguire la query 'seleziona' come dimostrato di seguito:

SELECT * FROM nome_sequenza;

Possiamo vedere che l'ultimo valore nella sequenza esistente è 104. Ripristiniamo questo valore e definiamo un nuovo valore che avranno le nuove voci.

Per reimpostare la sequenza PostgreSQL, utilizzare il seguente comando:

ALTER SEQUENCE nome_sequenza RESTART WITH valore;

Nel nostro caso, diciamo che vogliamo riavviare la sequenza e iniziare le nuove voci da 20. Dopo aver eseguito il comando seguente, otteniamo un output, come mostrato di seguito, che conferma che la sequenza è stata modificata.

Se eseguiamo nuovamente il comando precedente per ottenere i dettagli della nostra sequenza utilizzando l'istruzione SELECT, possiamo vedere che il nuovo 'last_value' per questo caso è il valore che abbiamo specificato con il comando ALTER.

Inseriamo una nuova voce nella nostra tabella per vedere cosa succede. L'immagine seguente mostra la query INSERT e i risultati che otteniamo dopo aver eseguito l'istruzione SELECT. Nota come la nuova voce ha il suo 'user_id' impostato su 20. Tutte le nuove voci che creeremo avranno il loro 'user_id' generato in base all'ultimo valore che è 20.

Se facciamo un altro input, il suo “user_id” sarà 21 e la sequenza procederà utilizzando la stessa logica. È così che reimposti una sequenza in PostgreSQL. Tieni presente che il comando 'reset' non influisce sui record esistenti. Definisce solo il nuovo valore iniziale per le immissioni effettuate dopo aver reimpostato la sequenza.

Conclusione

Con PostgreSQL, avere un modo per generare automaticamente i valori interi nella colonna della chiave primaria semplifica le cose. Quando hai una sequenza esistente, puoi utilizzare ALTER SEQUENCE
comando con l'opzione RESTART WITH per specificare quale sequenza si desidera ripristinare e quale valore impostare come ultimo valore nella sequenza. In questo modo, le nuove voci avranno il valore intero generato in base al nuovo ultimo valore. Fare riferimento all'esempio presentato per comprendere come funziona il ripristino di una sequenza PostgreSQL.