Πώς να ρυθμίσετε το πρωτεύον κλειδί αυτόματης αύξησης PostgreSQL;

How Setup Postgresql Auto Increment Primary Key



Θα μπορούσαν να υπάρχουν περιπτώσεις όπου δημιουργείτε και διατηρείτε πίνακες στο PostgreSQL όταν θέλετε συγκεκριμένες τιμές για μια στήλη που δημιουργείται κατόπιν αιτήματος. Αυτό θα ισχύει ιδιαίτερα για τις στήλες ταυτότητας που λειτουργούν ως το κύριο κλειδί του πίνακα. Ευτυχώς, ο SERIAL ψευδο-τύπος επιτρέπει τη βολική χρήση μιας σειράς ακεραίων με αυτόματη αύξηση. Μια σειρά είναι ένας τύπος αντικειμένου βάσης δεδομένων στο PostgreSQL που παράγει μια σειρά ευρετηρίων ή ακέραιων αριθμών. Μια ακολουθία PostgreSQL παράγει μια σειρά διακριτών ακεραίων, καθιστώντας την κατάλληλη για χρήση ως κύριο κλειδί κατά τη δημιουργία ενός νέου πίνακα. Θα σας δείξουμε τι μενού αυτόματης αύξησης στο PostgreSQL και θα χρησιμοποιήσουμε τον SERIAL ψευδο-τύπο σε αυτόν τον οδηγό.

Σύνταξη:

Η γενική σύνταξη για τη δημιουργία του πρωτογενούς κλειδιού αυτόματης αύξησης έχει ως εξής:







>>ΔΗΜΙΟΥΡΓΙΑ ΤΡΑΠΕΖΙΟΥ table_name( ταυτότηταΚΑΤΑ ΣΥΡΡΟΗ)?

Ας ρίξουμε τώρα μια ματιά στη δήλωση CREATE TABLE με περισσότερες λεπτομέρειες:



  • Η PostgreSQL δημιουργεί πρώτα μια οντότητα σειράς. Παράγει την επόμενη τιμή στη σειρά και την ορίζει ως προεπιλεγμένη τιμή αναφοράς του πεδίου.
  • Η PostgreSQL εφαρμόζει τον άρρητο περιορισμό NOT NULL σε ένα πεδίο ταυτότητας, καθώς μια σειρά παράγει αριθμητικές τιμές.
  • Το πεδίο id θα εκχωρηθεί ως κάτοχος της σειράς. Εάν το πεδίο id ή ο ίδιος ο πίνακας παραλειφθεί, η ακολουθία θα απορριφθεί.

Για να λάβετε την έννοια της αυτόματης αύξησης, βεβαιωθείτε ότι το PostgreSQL είναι τοποθετημένο και διαμορφωμένο στο σύστημά σας προτού συνεχίσετε με τις εικόνες σε αυτόν τον οδηγό. Ανοίξτε το κέλυφος της γραμμής εντολών PostgreSQL από την επιφάνεια εργασίας. Προσθέστε το όνομα του διακομιστή σας στο οποίο θέλετε να εργαστείτε, διαφορετικά αφήστε το στην προεπιλογή. Γράψτε το όνομα της βάσης δεδομένων που βρίσκεται στον διακομιστή σας στον οποίο θέλετε να εργαστείτε. Εάν δεν θέλετε να το αλλάξετε, αφήστε το ως προεπιλογή. Θα χρησιμοποιήσουμε τη δοκιμαστική βάση δεδομένων, γι 'αυτό την προσθέσαμε. Μπορείτε επίσης να εργαστείτε στην προεπιλεγμένη θύρα 5432, αλλά μπορείτε επίσης να την αλλάξετε. Στο τέλος, πρέπει να δώσετε το όνομα χρήστη για τη βάση δεδομένων που επιλέγετε. Αφήστε το στην προεπιλογή εάν δεν θέλετε να το αλλάξετε. Πληκτρολογήστε τον κωδικό πρόσβασης για το επιλεγμένο όνομα χρήστη και πατήστε Enter από το πληκτρολόγιο για να ξεκινήσετε να χρησιμοποιείτε το κέλυφος εντολών.







Χρήση SERIAL λέξης -κλειδιού ως τύπου δεδομένων:

Όταν δημιουργούμε έναν πίνακα, συνήθως δεν προσθέτουμε τη λέξη -κλειδί SERIAL στο πεδίο της κύριας στήλης. Αυτό σημαίνει ότι πρέπει να προσθέσουμε τις τιμές στη στήλη του κύριου κλειδιού κατά τη χρήση της δήλωσης INSERT. Αλλά όταν χρησιμοποιούμε τη λέξη -κλειδί SERIAL στο ερώτημά μας κατά τη δημιουργία ενός πίνακα, δεν θα πρέπει να προσθέσουμε τιμές κύριας στήλης ενώ εισάγουμε τις τιμές. Ας το ρίξουμε μια ματιά.

Παράδειγμα 01:

Δημιουργία πίνακα Δοκιμή με δύο στήλες αναγνωριστικό και όνομα. Το αναγνωριστικό στήλης έχει οριστεί ως η κύρια στήλη κλειδιού, καθώς ο τύπος δεδομένων της είναι SERIAL. Από την άλλη πλευρά, το όνομα της στήλης ορίζεται ως ο τύπος δεδομένων TEXT NOT NULL. Δοκιμάστε την παρακάτω εντολή για να δημιουργήσετε έναν πίνακα και ο πίνακας θα δημιουργηθεί αποτελεσματικά όπως φαίνεται στην παρακάτω εικόνα.



>>ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑΣ Δοκιμή( ταυτότηταΣΕΙΡΙΑΚΟ ΠΡΩΤΟΤΥΠΟ ΚΛΕΙΔΙ, όνομα TEXT NOT NULL)?

Ας εισαγάγουμε ορισμένες τιμές στο όνομα της στήλης του νέου πίνακα TEST. Δεν θα προσθέσουμε καμία τιμή στο αναγνωριστικό στήλης. Μπορείτε να δείτε ότι οι τιμές έχουν εισαχθεί με επιτυχία χρησιμοποιώντας την εντολή INSERT όπως αναφέρεται παρακάτω.

>>ΕΓΚΑΤΑΣΤΑΣΗ ΣΕ Δοκιμή(όνομα)ΑΞΙΕΣ(‘Aqsa’),('Rimsha'),('Χάνι')?

It’sρθε η ώρα να ελέγξετε τα αρχεία του πίνακα «Δοκιμή». Δοκιμάστε την παρακάτω επιλογή SELECT στο κέλυφος εντολών.

>>ΕΠΙΛΕΓΩ*ΑΠΟ Δοκιμή?

Από την παρακάτω έξοδο, μπορείτε να παρατηρήσετε ότι το αναγνωριστικό στήλης έχει αυτόματα ορισμένες τιμές, παρόλο που δεν έχουμε προσθέσει τιμές από την εντολή INSERT λόγω του τύπου δεδομένων SERIAL που έχουμε καθορίσει για το αναγνωριστικό στήλης. Έτσι λειτουργεί ο τύπος δεδομένων SERIAL από μόνος του.

Παράδειγμα 02:

Ένας άλλος τρόπος για να ελέγξετε την τιμή της στήλης τύπου SERIAL είναι χρησιμοποιώντας τη λέξη -κλειδί RETURNING στην εντολή INSERT. Η παρακάτω δήλωση δημιουργεί μια νέα γραμμή στον πίνακα δοκιμής και δίνει την τιμή για το πεδίο id:

>>ΕΓΚΑΤΑΣΤΑΣΗ ΣΕ Δοκιμή(όνομα)ΑΞΙΕΣ('Χασάμ')ΕΠΙΣΤΡΟΦΗταυτότητα?

Ελέγχοντας τις εγγραφές του πίνακα Test χρησιμοποιώντας το ερώτημα SELECT, πήραμε την παρακάτω έξοδο όπως εμφανίζεται στην εικόνα. Το πέμπτο ρεκόρ έχει προστεθεί αποτελεσματικά στον πίνακα.

>>ΕΠΙΛΕΓΩ*ΑΠΟ Δοκιμή?

Παράδειγμα 03:

Η εναλλακτική έκδοση του παραπάνω ερωτήματος εισαγωγής χρησιμοποιεί τη λέξη -κλειδί DEFAULT. Θα χρησιμοποιήσουμε το όνομα της στήλης στην εντολή ΕΙΣΑΓΩΓΗ και στην ενότητα ΤΙΜΕΣ, θα της δώσουμε τη λέξη -κλειδί ΠΡΟΣΤΑΣΙΑ ως τιμή της. Το παρακάτω ερώτημα θα λειτουργήσει το ίδιο κατά την εκτέλεση.

>>ΕΓΚΑΤΑΣΤΑΣΗ ΣΕ Δοκιμή(ταυτότητα, όνομα)ΑΞΙΕΣ(DEFAULT, ‘Race’)?

Ας ελέγξουμε ξανά τον πίνακα χρησιμοποιώντας το ερώτημα SELECT ως εξής:

>>ΕΠΙΛΕΓΩ*ΑΠΟ Δοκιμή?

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

Παράδειγμα 04:

Ο αριθμός αλληλουχίας του πεδίου στήλης SERIAL βρίσκεται σε έναν πίνακα στο PostgreSQL. Η μέθοδος pg_get_serial_sequence () χρησιμοποιείται για να επιτευχθεί αυτό. Πρέπει να χρησιμοποιήσουμε τη συνάρτηση currval () μαζί με τη μέθοδο pg_get_serial_sequence (). Σε αυτό το ερώτημα, θα δώσουμε το όνομα του πίνακα και το όνομα της στήλης SERIAL στις παραμέτρους της συνάρτησης pg_get_serial_sequence (). Όπως μπορείτε να δείτε, έχουμε καθορίσει τον πίνακα Δοκιμή και αναγνωριστικό στήλης. Αυτή η μέθοδος χρησιμοποιείται στο παρακάτω παράδειγμα ερωτήματος:

>>SELECT currval(pg_get_serial_sequence(«Δοκιμή», «ταυτότητα'))?

Αξίζει να σημειωθεί ότι η συνάρτηση currval () μας βοηθά να εξαγάγουμε την πιο πρόσφατη τιμή της ακολουθίας, η οποία είναι 5. Η παρακάτω εικόνα είναι μια απεικόνιση του πώς θα μπορούσε να μοιάζει η απόδοση.

Συμπέρασμα:

Σε αυτό το σεμινάριο οδηγού, έχουμε δείξει πώς να χρησιμοποιείτε τον ψευδο-τύπο SERIAL για αυτόματη αύξηση στο PostgreSQL. Χρησιμοποιώντας μια σειρά στο PostgreSQL, είναι απλό να δημιουργήσετε ένα σύνολο αριθμών που αυξάνει αυτόματα. Ας ελπίσουμε ότι θα είστε σε θέση να εφαρμόσετε το πεδίο SERIAL στις περιγραφές του πίνακα χρησιμοποιώντας τις εικόνες μας ως αναφορά.