PostgreSQL ΑΛΛΑΓΗ ΠΙΝΑΚΑ: Προσθήκη & Μετονομασία Στήλης

⚡ Έξυπνη Σύνοψη

PostgreSQL Η συνάρτηση ALTER TABLE αλλάζει τη δομή ενός υπάρχοντος πίνακα, επιτρέποντάς σας να προσθέσετε ή να αφαιρέσετε στήλες, να μετονομάσετε μια στήλη ή ολόκληρο τον πίνακα, να ορίσετε προεπιλεγμένες τιμές και να επισυνάψετε περιορισμούς ελέγχου χωρίς να δημιουργήσετε ξανά το αντικείμενο.

  • 🧱 Σύνταξη: Η ενέργεια ALTER TABLE table-name (Τροποποίηση ονόματος πίνακα) εκτελεί μία δομική αλλαγή ανά πρόταση.
  • Προσθήκη στήλης: Ο τύπος δεδομένων ADD column-name προσθέτει μια νέα στήλη στον πίνακα.
  • Μετονομάζω: ΜΕΤΟΝΟΜΑΣΙΑ ΣΤΗΛΗΣ και ΜΕΤΟΝΟΜΑΣΙΑ ΓΙΑ να αλλάξετε το όνομα μιας στήλης ή του ονόματος του πίνακα.
  • ⚙️ Προεπιλεγμένη τιμή: Η ΑΛΛΑΓΗ ΣΤΗΛΗΣ SET DEFAULT παρέχει μια τιμή για μελλοντικές γραμμές INSERT.
  • Έλεγχος περιορισμού: Η εντολή ADD CHECK επικυρώνει τα νέα δεδομένα και απορρίπτει τις τιμές που δεν πληρούν τον κανόνα.
  • 🤖 Μετεγκαταστάσεις Τεχνητής Νοημοσύνης: Οι βοηθοί τεχνητής νοημοσύνης συντάσσουν σενάρια ALTER TABLE και τα εξετάζουν για ασφαλή ανάπτυξη.

PostgreSQL ΠΙΝΑΚΑΣ ΕΝΑΛΛΑΓΗΣ

Τι είναι το ALTER TABLE στο PostgreSQL?

The ΠΙΝΑΚΑΣ ΕΝΑΛΛΑΓΗΣ Η εντολή χρησιμοποιείται για να αλλάξει τη δομή ενός PostgreSQL πίνακα. Είναι η εντολή που χρησιμοποιείται για την αλλαγή των στηλών του πίνακα ή του ίδιου του ονόματος του πίνακα, χωρίς να χρειάζεται ναping και αναδημιουργώντας το αντικείμενο.

Σύνταξη

Εδώ είναι η σύνταξη για το PostgreSQL Εντολή ALTER TABLE:

ALTER TABLE table-name action;

Η παράμετρος table-name είναι το όνομα του πίνακα που πρέπει να αλλάξετε. Η παράμετρος action είναι η ενέργεια που πρέπει να εκτελέσετε, όπως η αλλαγή του ονόματος μιας στήλης ή η αλλαγή του τύπου δεδομένων μιας στήλης.

Περιγραφή

Η εντολή ALTER TABLE αλλάζει τον ορισμό ενός υπάρχοντος πίνακα. Παίρνει τις ακόλουθες υποφόρμες:

  • ΠΡΟΣΘΗΚΗ ΣΤΗΛΗΣ: αυτό χρησιμοποιεί παρόμοια σύνταξη με την εντολή CREATE TABLE για να προσθέσει μια νέα στήλη σε έναν πίνακα.
  • ΣΤΗΛΗ ΠΤΩΣΗΣ: για πτώσηping μια στήλη πίνακα. Οι περιορισμοί και τα ευρετήρια που επιβάλλονται στις στήλες θα παραλειφθούν επίσης.
  • ΡΥΘΜΙΣΗ/ΑΠΟΣΤΟΛΗ ΠΡΟΕΠΙΛΟΓΗ: χρησιμοποιείται για τον ορισμό ή την κατάργηση της προεπιλεγμένης τιμής για μια στήλη. Η αλλαγή ισχύει μόνο για τις επόμενες ΕΙΣΑΓΩΓΗ δηλώσεις.
  • SET/DROP NOT NULL: αλλάζει εάν μια στήλη θα επιτρέπει null τιμές ή όχι.
  • ΣΤΑΤΙΣΤΙΚΑ ΣΤΟΙΧΕΙΑ: για τον ορισμό του στόχου συλλογής στατιστικών στοιχείων για κάθε στήλη για τις λειτουργίες ΑΝΑΛΥΣΗΣ.
  • ΡΥΘΜΙΣΗ ΑΠΟΘΗΚΕΥΣΗΣ: για τον ορισμό της λειτουργίας αποθήκευσης για μια στήλη, είτε ενσωματωμένη είτε σε συμπληρωματικό πίνακα.
  • ΣΕΤ ΧΩΡΙΣ ΟΙΔΙΑ: χρησιμοποιείται για την αφαίρεση της παλιάς στήλης OID του πίνακα.
  • ΜΕΤΟΝΟΜΑΖΩ: για την αλλαγή του ονόματος του πίνακα ή ενός ονόματος στήλης.
  • ΠΡΟΣΘΗΚΗ πίνακα_περιορισμού: χρησιμοποιείται για την προσθήκη ενός νέου περιορισμού σε έναν πίνακα. Χρησιμοποιεί την ίδια σύνταξη με το Δημιουργία πίνακα εντολή.
  • ΠΡΟΣΤΑΤΕΥΤΙΚΗ ΣΥΣΚΕΥΗ: χρησιμοποιείται για πτώσηping ένας περιορισμός πίνακα.
  • ΙΔΙΟΚΤΗΤΗΣ: για την αλλαγή του κατόχου ενός πίνακα, ακολουθίας, ευρετηρίου ή προβολής σε έναν συγκεκριμένο χρήστη.
  • CLUSTER: για την επισήμανση ενός πίνακα που θα χρησιμοποιηθεί για μελλοντικές λειτουργίες συμπλέγματος.

Τροποποίηση στήλης

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

Προσθήκη νέας στήλης

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

ALTER TABLE table-name
  ADD new-column-name column-definition;

Το όνομα-πίνακα είναι το όνομα του πίνακα που θα τροποποιηθεί. Το όνομα-νέας-στήλης είναι το όνομα της νέας στήλης που θα προστεθεί. Ο ορισμός-στήλης είναι το Τύπος δεδομένων της νέας στήλης. Δείτε τον πίνακα Βιβλίων που εμφανίζεται παρακάτω:

PostgreSQL Παράδειγμα ALTER TABLE

Ο πίνακας έχει δύο στήλες, id και name. Πρέπει να προσθέσουμε μια νέα στήλη στον πίνακα και να της δώσουμε το όνομα author. Απλώς εκτελέστε την ακόλουθη εντολή:

ALTER TABLE Book
  ADD author VARCHAR(50);

Αφού εκτελέσετε την παραπάνω εντολή, ο πίνακας Book έχει πλέον ως εξής:

PostgreSQL Παράδειγμα ALTER TABLE

Η νέα στήλη προστέθηκε με επιτυχία.

Μετονομασία στήλης πίνακα

Μπορούμε να χρησιμοποιήσουμε την εντολή ALTER TABLE για να αλλάξουμε το όνομα μιας στήλης. Σε αυτήν την περίπτωση, η εντολή χρησιμοποιείται με την ακόλουθη σύνταξη:

ALTER TABLE table-name
  RENAME COLUMN old-name TO new-name;

Το όνομα-πίνακα είναι το όνομα του πίνακα του οποίου η στήλη πρόκειται να μετονομαστεί. Το παλιό-όνομα είναι το τρέχον όνομα της στήλης και το νέο-όνομα είναι το νέο όνομα της στήλης. Θεωρήστε τον πίνακα Βιβλίο που φαίνεται παρακάτω:

Βιβλίο:

PostgreSQL Παράδειγμα ALTER TABLE

Πρέπει να αλλάξουμε το όνομα του συγγραφέα της στήλης σε book_author. Η εντολή είναι η εξής:

ALTER TABLE Book
  RENAME COLUMN author TO book_author;

Αφού εκτελέσουμε την εντολή, μπορούμε να δούμε τη δομή του πίνακα:

PostgreSQL Παράδειγμα ALTER TABLE

Το όνομα της στήλης άλλαξε με επιτυχία.

Ορισμός προεπιλεγμένης τιμής για στήλη

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

ALTER TABLE table-name ALTER COLUMN column-name [SET DEFAULT value];

Το όνομα-πίνακα είναι το όνομα του πίνακα του οποίου η στήλη πρόκειται να τροποποιηθεί. Το όνομα-στήλης είναι το όνομα της στήλης της οποίας η προεπιλεγμένη τιμή πρόκειται να οριστεί και η τιμή είναι η προεπιλεγμένη τιμή για τη στήλη. Θεωρήστε τον πίνακα Βιβλίου που δίνεται παρακάτω:

PostgreSQL Παράδειγμα ALTER TABLE

Πρέπει να ορίσουμε μια προεπιλεγμένη τιμή για τη στήλη book_author. Μπορούμε να εκτελέσουμε την ακόλουθη εντολή:

ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';

Τώρα, ας εισαγάγουμε μια σειρά στον πίνακα:

INSERT INTO Book (id, name)
 VALUES (6, 'PostgreSQL for Beginners');

Σημειώστε ότι εισαγάγαμε τιμές μόνο για δύο στήλες, το id και το name. Ωστόσο, η προεπιλεγμένη τιμή έχει χρησιμοποιηθεί για τη στήλη book_author:

PostgreSQL Παράδειγμα ALTER TABLE

Προσθήκη περιορισμού ελέγχου

Ένας περιορισμός ελέγχου βοηθά στην επικύρωση των εγγραφών που εισάγονται σε έναν πίνακα. Μπορούμε να το κάνουμε αυτό συνδυάζοντας την εντολή ALTER TABLE με την πρόταση ADD CHECK. Σύνταξη:

ALTER TABLE table-name ADD CHECK expression;

Το όνομα-πίνακα είναι το όνομα του πίνακα που θα τροποποιηθεί και η έκφραση είναι ο περιορισμός που θα επιβληθεί στη στήλη του πίνακα. Ας τροποποιήσουμε τη στήλη book_author του πίνακα Book έτσι ώστε να δέχεται μόνο τις τιμές Nicholas και Samuel:

ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'));

Τώρα, ας προσπαθήσουμε να εισαγάγουμε μια τιμή διαφορετική από τον Nicholas ή τον Samuel στη στήλη book_author του πίνακα Βιβλίο:

INSERT INTO Book
VALUES(7, 'καλυτερα PostgreSQL Book', 'Gregory Bush');

Η δήλωση θα επιστρέψει το ακόλουθο σφάλμα:

PostgreSQL Παράδειγμα ALTER TABLE

Η λειτουργία εισαγωγής απέτυχε επειδή παραβιάσαμε τον περιορισμό ελέγχου.

Μετονομασία πίνακα

Ακολουθεί η σύνταξη για την εντολή ALTER TABLE για τη μετονομασία ενός πίνακα:

ALTER TABLE table-name
  RENAME TO new-table-name;

Το όνομα-πίνακα είναι το τρέχον όνομα του πίνακα και το νέο όνομα-πίνακα είναι το νέο όνομα που θα αντιστοιχιστεί στον πίνακα. Για παράδειγμα, ας αλλάξουμε το όνομα του πίνακα Βιβλίο σε Βιβλία:

ALTER TABLE Book
  RENAME TO Books;

Χρήση του pgAdmin

Μέχρι στιγμής οι ενέργειες έχουν εκτελεστεί από το κέλυφος SQL. Τώρα ας δούμε πώς αυτές οι ίδιες ενέργειες μπορούν να εκτελεστούν οπτικά χρησιμοποιώντας το pgAdmin.

Προσθήκη νέας στήλης

Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.

Βήμα 2)

  1. Από τη γραμμή πλοήγησης στα αριστερά, κάντε κλικ στην επιλογή Βάσεις δεδομένων.
  2. Κάντε κλικ στο Demo.

PostgreSQL Παράδειγμα ALTER TABLE

Βήμα 3) Πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:

ALTER TABLE Book
  ADD author VARCHAR(50);

Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.

PostgreSQL Παράδειγμα ALTER TABLE

Βήμα 5) Για να ελέγξετε αν προστέθηκε η στήλη, κάντε τα εξής:

  1. Κάντε κλικ στην επιλογή Βάσεις δεδομένων από το αριστερό μενού πλοήγησης.
  2. Αναπτύξτε το Demo.
  3. Αναπτύξτε τα σχήματα.
  4. Αναπτύξτε το Public.
  5. Αναπτύξτε τους πίνακες.
  6. Αναπτύξτε το βιβλίο.
  7. Αναπτύξτε τις Στήλες.

PostgreSQL Παράδειγμα ALTER TABLE

Η στήλη θα έπρεπε να έχει προστεθεί, όπως φαίνεται παρακάτω:

PostgreSQL Παράδειγμα ALTER TABLE

Μετονομασία στήλης πίνακα

Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.

Βήμα 2)

  1. Από τη γραμμή πλοήγησης στα αριστερά, κάντε κλικ στην επιλογή Βάσεις δεδομένων.
  2. Κάντε κλικ στο Demo.

PostgreSQL Παράδειγμα ALTER TABLE

Βήμα 3) Πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:

ALTER TABLE Book
  RENAME COLUMN author TO book_author;

Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.

PostgreSQL Παράδειγμα ALTER TABLE

Βήμα 5) Για να ελέγξετε εάν η αλλαγή ήταν επιτυχής, αναπτύξτε τις στήλες του πίνακα βιβλίων όπως πριν:

PostgreSQL Παράδειγμα ALTER TABLE

Οι στήλες πρέπει τώρα να είναι οι εξής:

PostgreSQL Παράδειγμα ALTER TABLE

Η στήλη άλλαξε με επιτυχία.

Ορισμός προεπιλεγμένης τιμής για στήλη

Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.

Βήμα 2)

  1. Από τη γραμμή πλοήγησης στα αριστερά, κάντε κλικ στην επιλογή Βάσεις δεδομένων.
  2. Κάντε κλικ στο Demo.

PostgreSQL Παράδειγμα ALTER TABLE

Βήμα 3) Πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:

ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';

Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.

PostgreSQL Παράδειγμα ALTER TABLE

Βήμα 5) Για να το δοκιμάσετε, εκτελέστε την ακόλουθη εντολή στον επεξεργαστή ερωτημάτων:

INSERT INTO Book (id, name)
 VALUES (6, 'PostgreSQL for Beginners')

Βήμα 6) Τώρα, μπορούμε να υποβάλουμε ερώτημα στον πίνακα για να ελέγξουμε εάν η προεπιλεγμένη τιμή εισήχθη στη στήλη book_author:

PostgreSQL Παράδειγμα ALTER TABLE

Προσθήκη περιορισμού ελέγχου

Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.

Βήμα 2)

  1. Από τη γραμμή πλοήγησης στα αριστερά, κάντε κλικ στην επιλογή Βάσεις δεδομένων.
  2. Κάντε κλικ στο Demo.

PostgreSQL Παράδειγμα ALTER TABLE

Βήμα 3) Πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:

ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'))

Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.

PostgreSQL Παράδειγμα ALTER TABLE

Βήμα 5) Για να το δοκιμάσετε αυτό, πληκτρολογήστε το ακόλουθο ερώτημα στον επεξεργαστή ερωτημάτων και κάντε κλικ στο κουμπί Εκτέλεση:

INSERT INTO Book
VALUES(7, 'καλυτερα PostgreSQL Book', 'Gregory Bush');

PostgreSQL Παράδειγμα ALTER TABLE

Θα επιστρέψει τα εξής:

PostgreSQL Παράδειγμα ALTER TABLE

Μετονομασία πίνακα

Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.

Βήμα 2)

  1. Από τη γραμμή πλοήγησης στα αριστερά, κάντε κλικ στην επιλογή Βάσεις δεδομένων.
  2. Κάντε κλικ στο Demo.

PostgreSQL Παράδειγμα ALTER TABLE

Βήμα 3) Πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:

ALTER TABLE Book
  RENAME TO Books;

Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.

PostgreSQL Παράδειγμα ALTER TABLE

Βήμα 5) Για να ελέγξετε εάν ο πίνακας μετονομάστηκε, αναπτύξτε τις επιλογές Βάσεις δεδομένων > Επίδειξη > Σχήματα > Δημόσια > Πίνακες:

PostgreSQL Παράδειγμα ALTER TABLE

Ο πίνακας μετονομάστηκε με επιτυχία.

Κάντε λήψη της βάσης δεδομένων που χρησιμοποιείται σε αυτό το σεμινάριο

Συχνές Ερωτήσεις

Χρησιμοποιήστε την ALTER TABLE table_name ALTER COLUMN column_name TYPE new_type. Προσθέστε έναν όρο USING όταν οι τιμές χρειάζονται μετατροπή, για παράδειγμα ALTER COLUMN price TYPE numeric USING price::numeric. PostgreSQL ξαναγράφει τη στήλη και ελέγχει ότι τα υπάρχοντα δεδομένα ταιριάζουν στον νέο τύπο.

Μόνο εάν η αθέτηση είναι ασταθής. Δεδομένου ότι PostgreSQL 11, Η ΠΡΟΣΘΗΚΗ ΣΤΗΛΗΣ με σταθερή προεπιλογή ενημερώνει τον κατάλογο άμεσα χωρίς να ξαναγράφει γραμμές. Μια προεπιλογή που καλεί μια συνάρτηση εξακολουθεί να επιβάλλει μια πλήρη επανεγγραφή πίνακα και ένα ισχυρότερο κλείδωμα.

Όχι. PostgreSQL Δεν είναι δυνατή η τροποποίηση ενός περιορισμού που έχει τεθεί σε ισχύ. Αφαιρέστε τον υπάρχοντα με την εντολή DROP CONSTRAINT και, στη συνέχεια, προσθέστε τον διορθωμένο με την εντολή ADD CONSTRAINT. Τυλίξτε και τις δύο εντολές σε μια συναλλαγή, ώστε ο πίνακας να μην μείνει ποτέ χωρίς τον κανόνα.

Παραθέστε μια λίστα με διάφορες ενέργειες διαχωρισμένες με κόμματα: ALTER TABLE Book ADD COLUMN price int, ADD COLUMN isbn text. PostgreSQL Εφαρμόζει κάθε αλλαγή με ένα μόνο πέρασμα, κάτι που είναι ταχύτερο και διατηρεί τον πίνακα συνεπή.

Χρησιμοποιήστε τις συναρτήσεις ALTER TABLE table_name ADD PRIMARY KEY (στήλη) ή ADD CONSTRAINT pk_name PRIMARY KEY (στήλη). Η στήλη πρέπει να περιέχει μοναδικές, μη null τιμές. PostgreSQL Δημιουργεί αυτόματα ένα υποστηρικτικό μοναδικό ευρετήριο όταν δημιουργείται το κλειδί.

Η εντολή ΜΕΤΟΝΟΜΑ ενημερώνει μόνο το όνομα του πίνακα στον κατάλογο συστήματος. Οι αποθηκευμένες γραμμές, τα ευρετήρια και οι περιορισμοί παραμένουν στη θέση τους και δεν επηρεάζονται. Οι προβολές ή οι συναρτήσεις που αναφέρονται στο παλιό όνομα ενδέχεται να χρειάζονται ενημέρωση αργότερα.

Οι βοηθοί τεχνητής νοημοσύνης συντάσσουν σενάρια ALTER TABLE από μια περιγραφόμενη αλλαγή, ταξινομούν σωστά τα βήματα ADD, RENAME και περιορισμού και προσθέτουν όρους USING για μετατροπές τύπων. Επίσης, επισημαίνουν λειτουργίες που ξαναγράφουν μεγάλους πίνακες ή διατηρούν βαριά κλειδώματα.

Ναι. Ένας συγκυβερνήτης AI εξετάζει μια μετεγκατάσταση, προειδοποιεί για κλείδωμα ή επανεγγραφές πλήρους πίνακα, προτείνει μαζική ή ταυτόχρονη δημιουργία ευρετηρίου και συνιστά αναδίπλωση.ping αλλαγές σε μια συναλλαγή, καθιστώντας τις ενημερώσεις σχήματος ασφαλέστερες στην ανάπτυξη.

Συνοψίστε αυτήν την ανάρτηση με: