Πώς να επαναφέρετε μια ακολουθία στο PostgreSQL

Pos Na Epanapherete Mia Akolouthia Sto Postgresql



Η χρήση της ακολουθίας PostgreSQL είναι ένας αποτελεσματικός τρόπος εργασίας με μια τιμή αυτόματης αύξησης, ειδικά για πρωτεύοντα κλειδιά. Όταν η τιμή έναρξης δεν έχει οριστεί, η αυτόματη αύξηση για το INT θα ξεκινά από το 0. Ωστόσο, μπορείτε να καθορίσετε ποια αρχική τιμή θα χρησιμοποιηθεί για την ακολουθία στη στήλη αυτόματης αύξησης.

Επιπλέον, εάν εμφανιστεί μια κατάσταση που απαιτεί να αλλάξετε την επόμενη τιμή στην ακολουθία, μπορείτε να επαναφέρετε γρήγορα την ακολουθία και να καθορίσετε με ποια τιμή θα ξεκινήσετε για την επόμενη καταχώρηση στον πίνακα. Όλες οι λεπτομέρειες που πρέπει να γνωρίζετε σχετικά με τον τρόπο επαναφοράς μιας ακολουθίας στο PostgreSQL περιγράφονται λεπτομερώς σε αυτήν την ανάρτηση. Ρίξε μια ματιά!

Παράδειγμα σχετικά με τον τρόπο επαναφοράς μιας ακολουθίας στο PostgreSQL

Με μια στήλη INT, μπορείτε να δημιουργήσετε μια ακολουθία αυτόματης αύξησης και να τη χρησιμοποιήσετε ως πρωτεύον κλειδί για τον πίνακά σας. Με αυτόν τον τρόπο, δεν θα χρειαστεί να εισαγάγετε τις τιμές του όταν εκτελείτε ένα ερώτημα INSERT, καθώς οι ακέραιες τιμές θα δημιουργηθούν αυτόματα. Με τη δημιουργία της ακολουθίας, η εντολή ALTER SEQUENCE σάς επιτρέπει να επανεκκινήσετε την ακολουθία και να καθορίσετε μια νέα αρχική τιμή για τις νέες καταχωρήσεις.







Για αυτό το παράδειγμα, θα εργαστούμε με τον ακόλουθο πίνακα 'user_details'. Η εστίασή μας είναι η στήλη 'user_id' που είναι μια ακολουθία αυτόματης αύξησης που ξεκινά από το 100.





Για να απαριθμήσετε τις διαφορετικές ακολουθίες στη βάση δεδομένων σας, εκτελέστε την ακόλουθη εντολή:





\ds

Για την περίπτωσή μας, στοχεύουμε την ακολουθία 'user_id'.



Για να λάβετε περισσότερες λεπτομέρειες σχετικά με την ακολουθία, εκτελέστε το ερώτημα 'επιλογή' όπως φαίνεται στα παρακάτω:

SELECT * FROM sequence_name;

Μπορούμε να δούμε ότι η τελευταία τιμή στην υπάρχουσα ακολουθία είναι 104. Επαναφέρουμε αυτήν την τιμή και ορίζουμε μια νέα τιμή που θα έχουν οι νέες εγγραφές.

Για να επαναφέρετε την ακολουθία PostgreSQL, χρησιμοποιήστε την ακόλουθη εντολή:

ALTER SEQUENCE sequence_name ΕΠΑΝΕΚΚΙΝΗΣΗ ΜΕ τιμή.

Για την περίπτωσή μας, ας πούμε ότι θέλουμε να κάνουμε επανεκκίνηση της ακολουθίας και να ξεκινήσουμε τις νέες εγγραφές στο 20. Αφού εκτελέσουμε την παρακάτω εντολή, λαμβάνουμε μια έξοδο, όπως φαίνεται παρακάτω, η οποία επιβεβαιώνει ότι η ακολουθία έχει αλλοιωθεί.

Εάν εκτελέσουμε ξανά την προηγούμενη εντολή για να λάβουμε τις λεπτομέρειες της ακολουθίας μας χρησιμοποιώντας τη δήλωση SELECT, μπορούμε να δούμε ότι η νέα 'τελευταία_τιμή' για αυτήν την περίπτωση είναι η τιμή που καθορίσαμε με την εντολή ALTER.

Ας εισάγουμε μια νέα καταχώρηση στον πίνακά μας για να δούμε τι συμβαίνει. Η παρακάτω εικόνα δείχνει το ερώτημα INSERT και τα αποτελέσματα που έχουμε μετά την εκτέλεση της πρότασης SELECT. Παρατηρήστε πώς η νέα καταχώριση έχει ορίσει το 'user_id' σε 20. Όλες οι νέες καταχωρήσεις που κάνουμε θα έχουν το 'user_id' τους που δημιουργείται με βάση την τελευταία τιμή που είναι 20.

Αν κάνουμε άλλη είσοδο, το 'user_id' του θα είναι 21 και η ακολουθία θα προχωρήσει χρησιμοποιώντας την ίδια λογική. Έτσι επαναφέρετε μια ακολουθία στο PostgreSQL. Σημειώστε ότι η εντολή 'reset' δεν επηρεάζει τις υπάρχουσες εγγραφές. Καθορίζει μόνο τη νέα αρχική τιμή για τις καταχωρίσεις που κάνετε μετά την επαναφορά της ακολουθίας.

συμπέρασμα

Με την PostgreSQL, το να έχετε έναν τρόπο να δημιουργείτε αυτόματα τις ακέραιες τιμές στη στήλη του πρωτεύοντος κλειδιού σας απλοποιεί τα πράγματα. Όταν έχετε μια υπάρχουσα ακολουθία, μπορείτε να χρησιμοποιήσετε την ΑΛΛΗ ΑΚΟΛΟΥΘΙΑ
εντολή με την επιλογή RESTART WITH για να καθορίσετε ποια ακολουθία θέλετε να επαναφέρετε και ποια τιμή να ορίσετε ως την τελευταία τιμή της ακολουθίας. Με αυτόν τον τρόπο, οι νέες καταχωρήσεις θα έχουν την ακέραια τιμή που δημιουργείται με βάση τη νέα τελευταία τιμή. Ανατρέξτε στο παράδειγμα που παρουσιάζεται για να κατανοήσετε πώς λειτουργεί η επαναφορά μιας ακολουθίας PostgreSQL.