Τι κάνει την εντολή Alter Table. Οδηγός αναφοράς MySQL. Δείγματα αλλαγής εντολών σε SQL

Τελευταία ενημέρωση: 07/09/2017

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

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

Alter Table Name_table (Προσθήκη ονόματος_Stolbet Type_data_Stolbits [attributes_stolbets] | Drop column_stolbits_name | Αλλαγή στήλης Όνομα_Stolbet Type_Data_Stolbts | Προσθήκη ορισμού

Έτσι, με το Table Alter, μπορούμε να γυρίσουμε τα πιο διαφορετικά σενάρια για την αλλαγή του πίνακα. Εξετάστε μερικά από αυτά.

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

Προσθέστε μια νέα διεύθυνση στήλης στους πελάτες πίνακα:

Αλλάξτε τους πελάτες πίνακα προσθέτουν διεύθυνση nvarchar (50) null;

Σε αυτή την περίπτωση, η στήλη διεύθυνσης έχει έναν τύπο NVarchar και το μηδενικό χαρακτηριστικό ορίζεται για αυτό. Αλλά τι γίνεται αν χρειαστεί να προσθέσουμε μια στήλη που δεν θα πρέπει να κάνει null τιμές; Εάν ο πίνακας έχει δεδομένα, δεν θα εκτελεστεί η ακόλουθη εντολή:

Αλλάξτε τους πελάτες πίνακα προσθέτουν διεύθυνση nvarchar (50) όχι μηδέν.

Επομένως, στην περίπτωση αυτή, η λύση είναι η εγκατάσταση της προεπιλεγμένης τιμής μέσω του προεπιλεγμένου χαρακτηριστικού:

Αλλάξτε τους πελάτες του πίνακα Προσθέστε τη διεύθυνση NVARCHAR (50) όχι μηδενική προεπιλεγμένη "Άγνωστη".

Σε αυτή την περίπτωση, εάν ο πίνακας έχει ήδη δεδομένα, τότε για αυτούς για τη στήλη διεύθυνσης θα προστεθεί στο "Άγνωστο".

Αφαίρεση στήλης

Αφαιρέστε τη στήλη διεύθυνσης από τον πίνακα Πελάτες:

Αλλάξτε τη διεύθυνση της στήλης των πελατών.

Αλλαγή του τύπου της στήλης

Αλλαγή στον τύπο δεδομένων πίνακα πελατών στη στήλη FirstName στο NVARCHAR (200):

Αλλάξτε τους πελάτες πίνακα αλλαγής στήλης πρώτα να μην το ονομάζετε nvarchar (200).

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

Κατά την προσθήκη περιορισμών, ο SQL Server ελέγχει αυτόματα τα διαθέσιμα δεδομένα για τη συμμόρφωση με τους περιορισμούς. Εάν τα δεδομένα δεν αντιστοιχούν στους περιορισμούς, τότε οι περιορισμοί αυτοί δεν θα προστεθούν. Για παράδειγμα, εγκαταστήστε τον περιορισμό της ηλικίας\u003e 21 για την ηλικιακή στήλη στον πίνακα Πελάτες.

Αλλάξτε τους πελάτες πίνακα προσθέτουν έλεγχο (ηλικία\u003e 21);

Εάν υπάρχουν σειρές στον πίνακα στο οποίο η ηλικιακή στήλη έχει τις τιμές που είναι ακατάλληλες σε αυτόν τον περιορισμό, η εντολή SQL θα τελειώσει με ένα σφάλμα. Για να αποφύγετε έναν τέτοιο έλεγχο συμμόρφωσης και να προσθέσετε ένα όριο, παρά την παρουσία δεδομένων ακατάλληλων σε αυτό, η έκφραση χρησιμοποιείται από το Nocheck:

Αλλάξτε τους πελάτες πίνακα με nocheck Προσθήκη ελέγχου (ηλικία\u003e 21);

Από προεπιλογή, η τιμή του ελέγχου, η οποία ελέγχει τη συμμόρφωση με τους περιορισμούς.

Προσθέτοντας ένα εξωτερικό κλειδί

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

Δημιουργία επιτραπέζιων πελατών (ID INT κύρια ταυτότητα βασικού κλειδιού, Age Int Default 18, FirstName NVARCHAR (20) Not Null, Lastname NVarchar (20) Not Null, Email Varchar (30) Μοναδικό, τηλέφωνο Varchar (20) μοναδικό). Δημιουργία παραγγελιών πίνακα (ταυτότητα ταυτότητας INT, πελάτη INT, Creationat Day).

Προσθέστε έναν περιορισμό εξωτερικού κλειδιού στη στήλη Πελάτης πελάτη πελάτη:

Αλλάξτε τις παραγγελίες του πίνακα προσθέτουν ξένους κλειδί (πελάτες) αναφορές (ID);

Προσθέτοντας ένα κύριο κλειδί

Χρησιμοποιώντας τον παραπάνω πίνακα καθορισμένων παραγγελιών, προσθέστε το κύριο κλειδί σε αυτό για ένα αναγνωριστικό στήλης:

Αλλάξτε τις παραγγελίες πίνακα Προσθήκη πρωτεύοντος κλειδιού (ID).

Προσθέτοντας διαμορφώσεις με ονόματα

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

Αλλάξτε τις παραγγελίες πίνακα προσθήκης constraint pk_orders_id πρωτεύον κλειδί (id), constrints fk_orders_to_customers ξένο κλειδί (πελάτες) αναφορές πελατών (ID); Αλλαγή Πίνακας Πελάτες Προσθήκη περιορισμού CK_AGE_GREARRE_THAN_ZERO (ηλικία\u003e 0);

Αφαίρεση περιορισμών

Για να καταργήσετε τους περιορισμούς, πρέπει να γνωρίζετε το όνομά τους. Εάν σίγουρα δεν γνωρίζουμε το όνομα του περιορισμού, μπορεί να βρεθεί μέσω του SQL Server Management Studio:

Παραβλέψτε τον πίνακα των πινάκων στο περιοδικό Keys, μπορείτε να δείτε τα ονόματα των περιορισμών των πρωτογενών και εξωτερικών πλήκτρων. Τα ονόματα των περιορισμών των εξωτερικών πλήκτρων ξεκινούν με το "FK". Και στους περιορισμούς Pierce μπορείτε να βρείτε όλους τους περιορισμούς του ελέγχου και της προεπιλογής. Ελέγξτε τα ονόματα περιορισμών ξεκινήστε με το "CK" και τους προεπιλεγμένους περιορισμούς - με "DF".

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

Αλλάξτε τις παραγγελίες πίνακα drop fk_oders_to_customers;

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

Δεδομένος: Πίνακας αρκετών δωδεκάδων gigabytes των δεδομένων. Το έργο είναι να αλλάξει τη δομή του πίνακα.

Αμέσως τρέχετε μπροστά, η μέθοδος θα λειτουργεί μόνο σε πίνακες συναλλαγών. Εάν έχετε ένα τραπέζι myisam για δεκάδες gigabytes, τότε όπως και σε αυτό το ανέκδοτο, "αντιμετωπίζετε τον εαυτό σας με τα προβλήματά σας". Το παράδειγμα θα δοθεί για τον πίνακα InnoDB.

Ας υποθέσουμε ότι η δομή του πίνακα μας είναι αυτή:

Δημιουργία πίνακα `Χρήστες '(ID` INT (11) NOT NULL AUTO_INCRENT,` Email` Varchar (40) Not Null προεπιλεγμένο "", `Password_hash` char (32) not nuld default" ",` registrication_date` NULL προεπιλεγμένο "0", πρωτεύον κλειδί (αναγνωριστικό)) κινητήρα \u003d InnoDB προεπιλεγμένη charset \u003d UTF8
Θέλουμε να προσθέσουμε το πεδίο Last_login σε αυτόν τον πίνακα.

Ποιες επιλογές έχουμε.

Επικεφαλής

Alter Table "χρήστες προσθήκη στήλης` last_login` int (11) όχι μηδενική προεπιλογή 0;
Η επιλογή ανησυχεί απόλυτα σε μικρά έργα όπου το μέγεθος των πινάκων σπάνια υπερβαίνει τις 50.000 καταχωρήσεις. Δεν ταιριάζουμε την επιλογή. Η Alter θα πραγματοποιηθεί πολύ καιρό και όλη αυτή τη φορά ο πίνακας θα εμποδιστεί τόσο στην εγγραφή όσο και στην ανάγνωση. Κατά συνέπεια, η υπηρεσία θα πρέπει να σταματήσει αυτή τη στιγμή.

Ενεργοποιήστε τον εγκέφαλο

Μπορείτε να αγγίξετε γενικά τον πίνακα μόλις πήγαινε και κάντε ξεχωριστό `users_lastvisits ':
Δημιουργία πίνακα `users_lastvispits` (` user_id` int (11) not , `last_login` int (11) not null προεπιλεγμένο" 0 ", πρωτεύον κλειδί (` user_id)) κινητήρα \u003d innoDB προεπιλεγμένη charset \u003d UTF8;
Τώρα μπορείτε σε όλα τα αιτήματα όπου χρειάζεστε ένα last_login για να συμμετάσχετε μαζί με το τραπέζι Last_login. Θα εργαστείτε, φυσικά, πιο αργά και σε ερωτήματα προσθέστε πάρα πολύ, πάρα πολύ χρόνο, αλλά σε γενικές γραμμές μερικές φορές συμβαίνει αρκετά και μπορείτε να σταματήσετε σε αυτό το σημείο.

Και όμως - πρέπει να προσθέσετε ένα πεδίο

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

Το δρόμο μου είναι το ακόλουθο

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

Έτσι, ετοιμάζουμε 2 πίνακες - το πρώτο με την επιθυμητή δομή, η δεύτερη για την καταγραφή αλλαγών.
Δημιουργία πίνακα `_users` (ID` INT (11) NOT NULL AUTO_INCRENT,` Email` varchar (40) not null προεπιλεγμένο "", `password_hash` char (32) not null default" ",` registry_date` int (11) NULL προεπιλογή "0", `Tassvisit` int (11) δεν είναι μηδενική προεπιλογή 0, πρωτεύον κλειδί (` id)) κινητήρα \u003d innoDB προεπιλεγμένη charset \u003d UTF8; Δημιουργία πίνακα `ansociate_updated_errows` (ID` int (11) not null auto_increment,` row_id` int (11) όχι null προεπιλεγμένο "0", `Action` Enum (" ενημέρωση "," διαγράφεται ") όχι μηδενική προεπιλεγμένη" ενημέρωση ", Κινητήρας πρωτεύοντος κλειδιού (`id`)) \u003d InnoDB προεπιλεγμένο charset \u003d UTF8;
Βάζουμε ενεργοποιητές:
Οριοθέτης; Δημιουργία UPGER UNSERS_AFTER_DELETE Μετά τη διαγραφή στους χρήστες για κάθε σειρά Ξεκινήστε να εισάγετε στις τιμές των χρηστών_Updated_ROWS (0, OLD.ID, "DELETED"). Τέλος ;; Δημιουργία Upger ancers_after_insert μετά την εισαγωγή στους χρήστες για κάθε σειρά Ξεκινήστε να εισάγετε στις τιμές των χρηστών_Updated_ering (0, new.id, "ενημέρωση"); Τέλος ;; Δημιουργία Upger users_after_update Μετά την ενημέρωση στους χρήστες για κάθε σειρά Ξεκινήστε εάν (Old.ID \u003d New.Id), στη συνέχεια, εισάγετε στους χρήστες_updated_ere Velles (0, old.id, "διαγράφηκε"). ΤΕΛΟΣ ΕΑΝ; Εισάγετε στους χρήστες_updated_rows Vales (0, new.id, "ενημέρωση"); Τέλος ;; Οριοθέτης;
Τώρα ξεκινάμε την υπερχείλιση. Για να το κάνετε αυτό, πρέπει να ανοίξετε 2 ενώσεις με τη βάση δεδομένων. Σε μια θα διευκολυνθεί η υπερχείλιση, στην άλλη, θα χρειαστεί να μπλοκάρετε το τραπέζι για την είσοδο.
Mysql\u003e Κλείδωμα των χρηστών των χρηστών; Query OK, 0 σειρές που επηρεάζονται (0,00 δευτερόλεπτα) MySQL\u003e - Οι ενεργοποιητές πρέπει ήδη να εγκατασταθούν MySQL\u003e TRUNCATE USOND_UPDED_ROWS. Query OK, 0 σειρές επηρεασμένες (0,17 δευτερόλεπτα) MySQL\u003e - Σε άλλη κονσόλα, αφήστε το MySQL\u003e Εισαγωγή εισόδου σε _users Επιλέξτε ID, Email, Password_hash, εγγραφή_date, 0 από χρήστες. MySQL\u003e - και πάλι στην πρώτη κονσόλα MySQL\u003e Ξεκλειδώστε πίνακες.
Όλα, τώρα ενώ το τραπέζι ξεχειλίζει, έχουμε χρόνο να σκεφτούμε πώς να ρίξουμε τα δεδομένα που άλλαξαν από τη στιγμή που η έναρξη εκκίνησης. Εδώ, γενικά, δεν θα φέρει τίποτα δύσκολο - δεν θα φέρει το σενάριο, απλά πρέπει να πάρετε μια είσοδο από τον πίνακα των χρηστών_Updated_ROWS με τη σειρά με την οποία προστίθενται (ταξινόμηση κατά κύριο πλήκτρο) και να το ενημερώσετε ή να το διαγράψετε το τραπέζι _users.

Έτσι, η μετάγγιση του πίνακα έχει ήδη τερματιστεί, πρέπει να ρίξετε άλλα δεδομένα. Εκτελέστε το σενάριο. Το σενάριο θα πρέπει να λειτουργεί συνεχώς και να ενημερώνει όλες τις εγγραφές που προστίθενται στο αρχείο καταγραφής όταν σπάει όλα τα δεδομένα που χρειάζεστε για να μετονομάσετε πίνακες:
Mysql\u003e truncate users_updated_rows; Query OK, 0 σειρές ΠΡΟΣΔΙΟΡΙΣΜΟΥ (0,16 δευτερόλεπτα) MySQL\u003e Μετονομασία των χρηστών πίνακα σε __users, _users στους χρήστες. Ερωτήσεις OK, 0 σειρές επηρεάζονται (0,11 δευτερόλεπτα)
Αξίζει να σημειωθεί ότι εκείνη τη στιγμή είναι δυνατή μια μικρή απώλεια δεδομένων. Τα αιτήματα δεν είναι ατομικά. Εάν είναι κρίσιμο, είναι καλύτερο να απενεργοποιήσετε την υπηρεσία για λίγο ότι δεν υπήρχαν αιτήσεις για αλλαγή. Μπορείτε να παραλάβετε τα δικαιώματα να γράψετε από τον χρήστη και να εκτελέσετε εντολές σε διαφορετικό χρήστη.

Εάν κάνετε τα πάντα σωστά, τα δεδομένα δεν θα χαθούν και δεν θα υπάρχουν σχεδόν καμία διαλείμματα στην υπηρεσία. Αυτό που χρειαζόμασταν. Με τον ίδιο τρόπο, μπορείτε να περάσετε τα δεδομένα σε άλλο διακομιστή, αλλά μόνο η μέθοδος της σειράς θα αλλάξει. αντι αυτου
MySQL\u003e Εισαγωγή σε _users Επιλέξτε ID, Email, Password_hash, Εγγραφή_date, 0 από χρήστες.
Πρέπει να χύσετε το mysqldump:
$ Mysqldump -h host 1 dB χρήστες --single-συναλλαγή -ecqq | Pv | Mysql -h host2.
Με αυτόν τον τρόπο, κατάφερα να σταματήσω χωρίς να σταματήσω τη λειτουργία των υπηρεσιών σε άλλο τραπέζι διακομιστή με μέγεθος 60GB και 400 εκατομμύρια γραμμές κάπου σε 12 ώρες.

Με την ευκαιρία, το ποδήλατο έχει ήδη εφευρεθεί από το Facebook και καλείται

Αλλάξτε τον πίνακα - αλλαγή ορισμός πίνακα

Σύνταξη

Αλλάξτε τον πίνακα [εάν υπάρχει] [μόνο] όνομα [ * ] υποκρίνομαι [, ...] Αλλάξτε τον πίνακα [αν υπάρχει] [μόνο] όνομα [*] Μετονομασία [στήλη] Namestolbitsa Προς την. New_imia_stolbtsy Αλλάξτε τον πίνακα [εάν υπάρχει] [μόνο] όνομα [*] Μετονομασία περιορισμού Όνομα προγράμματος Προς την. Όνομα_name Αλλάξτε τον πίνακα [αν υπάρχει] όνομα Μετονομάστε να. νέο όνομα Αλλάξτε τον πίνακα [αν υπάρχει] όνομα Ορίστε το σχήμα. New_shem Αλλάξτε το τραπέζι όλα στο χώρο του χώρου όνομα [Ανήκει. Όνομα [, ...]] Ορίστε το Tabletpace New_tabl_space [Οχι περίμενε] Οπου υποκρίνομαι Μπορεί να έχει ως εξής: Προσθέστε [στήλη] [αν δεν υπάρχει] Namestolbitsa Τύπος_Data [Αντιπαραβάλλω Κανονισμός ] [ Restription_stolbets [...]] πτώση [στήλη] [αν υπάρχει] Namestolbitsa [Περιορισμός | Cascade] Αλλαγή [στήλη] Namestolbitsa [Ορισμός δεδομένων] Τύπος Τύπος_Data [Αντιπαραβάλλω Κανονισμός ] [Χρησιμοποιώντας έκφραση ] Αλλαγή της [στήλης] Namestolbitsa Ορίστε προεπιλογή. έκφραση Αλλαγή [στήλη] Namestolbitsa Drop default alter [στήλη] Namestolbitsa (Σετ | Drop) Δεν είναι μηδενική αλλαγή [στήλη] Namestolbitsa Ορίστε στατιστικά στοιχεία ακέραιος αριθμός Αλλαγή [στήλη] Namestolbitsa Ορισμός ( Χαρακτηριστικό = αξία [, ...]) Αλλαγή [στήλη] Namestolbitsa Επαναφορά ( Χαρακτηριστικό [, ...]) Αλλαγή [στήλη] Namestolbitsa Ορισμός αποθήκευσης (απλός | Εξωτερικός | Extended | Main) Προσθήκη Restription_table [Δεν είναι έγκυρο] Προσθήκη Αλλάξτε τον περιορισμό. Όνομα προγράμματος [Deferretable | Δεν είναι αναβολή] [αρχικά αναβαλλόμενη | Αρχικά άμεσο] επικυρώνεται τον περιορισμό Όνομα προγράμματος Ο περιορισμός πτώσης [αν υπάρχει] Όνομα προγράμματος [Περιορισμός | Cascade] Απενεργοποιήστε τη σκανδάλη [ Όνομα_trggger | Όλα | Χρήστης] Ενεργοποίηση σκανδάλης [ Όνομα_trggger | Όλα | Χρήστης] Ενεργοποιήστε το αντίγραφο ενεργοποιημένο Όνομα_trggger Ενεργοποιήστε πάντα τη σκανδάλη. Όνομα_trggger Απενεργοποιήστε τον κανόνα. Όνομα_porivila_peep Ενεργοποιήστε τον κανόνα. Όνομα_porivila_peep Ενεργοποιήστε τον κανόνα αντίγραφα. Όνομα_porivila_peep Ενεργοποιήστε πάντα τον κανόνα. Όνομα_porivila_peep Απενεργοποίηση Ασφάλεια επιπέδου γραμμής Ενεργοποίηση επιπέδου επιπέδου ασφαλείας σειράς Ασφάλεια σειράς Ασφάλεια σειράς Ασφαλείας σε επίπεδο Όνομα_index Ρυθμίστε το Set Cluster Set με Oids που έχει οριστεί χωρίς oids Set Tablespace New_tabl_space Σετ (καταγραφή | Unlogged) Σετ ( Parameter_she γεγονός = αξία [, ...]) επαναφορά ( Parameter_she γεγονός [, ...]) κληρονομούν Πίνακας_Rodel Καμία κληρονομιά. Πίνακας_Rodel Του. Ονομα Όχι του ιδιοκτήτη σε ( New_vladeller | Τρέχον_user | Session_User) Αντίγραφο ταυτότητας (προεπιλογή | Χρήση ευρετηρίου Όνομα_index | Πλήρης | Τίποτα) και Restription_table_p_index: [Περιορισμός. Όνομα προγράμματος ] (Μοναδικό | πρωτογενές κλειδί) χρησιμοποιώντας δείκτη Όνομα_index [Deferretable | Δεν είναι αναβολή] [αρχικά αναβαλλόμενη | Αρχικά άμεση]

Περιγραφή

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

Προσθήκη στήλης [αν δεν υπάρχει]

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

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

Αυτή η φόρμα αλλάζει τον τύπο της στήλης του πίνακα. Οι δείκτες και οι απλούς πίνακες, συμπεριλαμβανομένης αυτής της στήλης, θα μετατραπούν αυτόματα για να χρησιμοποιούν έναν νέο τύπο στήλης, το οποίο θα αναδιαμορφώνει εκ νέου την έκφρασή του. Προαιρετική προσφορά Collate Ορίζει τον κανόνα ταξινόμησης για μια νέα στήλη. Εάν παραλειφθεί, επιλέγεται ο προεπιλεγμένος κανόνας ταξινόμησης για έναν νέο τύπο. Η προαιρετική χρήση της πρότασης καθορίζει τον τρόπο με τον οποίο θα ληφθεί η νέα τιμή της στήλης από το παλιό. Εάν λείπει, ο προεπιλεγμένος τύπος εκτελείται ως η συνήθης εκχώρηση της τιμής του παλαιού τύπου νέου. Η χρήση της πρότασης καθίσταται υποχρεωτική εάν δεν ορίζεται η σιωπηρή στάση ή η ανάθεση με την εισαγωγή ενός παλιού τύπου σε ένα νέο. Ορίστε / drop default

Αυτά τα έντυπα καθορίζονται ή διαγράφονται από προεπιλογή για τις στήλες. Οι προεπιλεγμένες τιμές ισχύουν μόνο για τις επόμενες εντολές εισόδου ή ενημέρωσης. Οι αλλαγές τους δεν αντικατοπτρίζονται στις γραμμές που υπάρχουν ήδη στον πίνακα. Ορίστε / drop not null

Αυτά τα έντυπα προσδιορίζονται εάν η στήλη θα πάρει μηδενικές τιμές ή όχι. Μπορείτε να καθορίσετε το Set Not Null μόνο εάν η στήλη δεν περιέχει μηδενικές τιμές. Ορίστε στατιστικά στοιχεία

Αυτή η φόρμα ρυθμίζει τα στατιστικά στοιχεία της στήλης που συγκεντρώνουν ορόσημο για τις μεταγενέστερες λειτουργίες ανάλυσης. Εύρος επιτρεπόμενων τιμών αναφοράς: 0..5000; AT -1, εφαρμόζεται η προεπιλεγμένη τιμή συστήματος (προεπιλογή_statistics_target). Για περισσότερες πληροφορίες σχετικά με τη χρήση στατιστικών στοιχειωδών Pro Pro Query Scheduler, ανατρέξτε στην ενότητα 14.2.

Ορίστε τα ζητήματα στατιστικών στοιχείων Μοιραστείτε την αποκλειστική κλειδαριά. Ορισμός ( Χαρακτηριστικό = αξία [, ... ])
Επαναφορά ( Χαρακτηριστικό [, ... ])

Αυτή η φόρμα ρυθμίζεται ή επαναφέρει τις παραμέτρους χαρακτηριστικών. Επί του παρόντος, οι μόνες παράμετροι των χαρακτηριστικών είναι η N_Distcted και N_Distctince_inered, η οποία υπερισχύει της εκτίμησης του αριθμού των ποσοτήτων_Names, γεγονός που καθιστά τις επόμενες λειτουργίες ανάλυσης. Το χαρακτηριστικό n_distctince επηρεάζει τον υπολογισμό των στατιστικών στοιχείων κατά μήκος του ίδιου του πίνακα και η N_Distinct_inerered είναι στα στατιστικά στοιχεία του πίνακα και στους απογόνους της. Εάν η καθορισμένη τιμή είναι θετική, η ανάλυση θα υποθέσει ότι η στήλη περιέχει ότι αυτός ο αριθμός διαφορετικών τιμών δεν είναι μηδενικός. Εάν η καθορισμένη τιμή είναι αρνητική (πρέπει να είναι μεγαλύτερη ή ίση με -1), η ανάλυση θα υποθέσει ότι ο αριθμός των διαφορετικών τιμών δεν είναι μηδενικός στη στήλη, εξαρτάται γραμμικά από το μέγεθος του πίνακα. Ο ακριβής αριθμός θα ληφθεί πολλαπλασιάζοντας το κατά προσέγγιση μέγεθος του πίνακα στην απόλυτη τιμή της παραμέτρου. Για παράδειγμα, στο -1 θα υποτεθεί ότι όλες οι τιμές στη στήλη θα είναι διαφορετικά και στο -0,5 - ότι, κατά μέσο όρο, κάθε τιμή επαναλαμβάνεται δύο φορές. Αυτό μπορεί να είναι χρήσιμο όταν το μέγεθος του πίνακα αλλάζει με την πάροδο του χρόνου, δεδομένου ότι ο πολλαπλασιασμός στον αριθμό των σειρών στον πίνακα γίνεται μόνο κατά τη διάρκεια του προγραμματισμού ερωτημάτων. C 0 Ο αριθμός των διαφορετικών τιμών υπολογίζεται ως συνήθως. Για περισσότερες πληροφορίες σχετικά με τη χρήση στατιστικών στοιχειωδών Pro Pro Query Scheduler, ανατρέξτε στην ενότητα 14.2.

Αποκτήστε την αποκλειστική κλειδαριά της κοινής χρήσης να αλλάζει τις παραμέτρους των χαρακτηριστικών. Ορίστε την αποθήκευση

Αυτή η φόρμα ρυθμίζει τη λειτουργία αποθήκευσης στηλών. Ορίζει αν τα δεδομένα αποθηκεύονται εντός του πίνακα ή σε ένα ξεχωριστό τραπέζι τοστ, καθώς και αν συμπιέζονται. Η απλή λειτουργία πρέπει να χρησιμοποιείται για τιμές σταθερού μήκους, όπως ακέραιο. Αυτή είναι μια επιλογή αποθήκευσης μέσα, χωρίς συμπίεση. Η κύρια λειτουργία χρησιμοποιείται για την αποθήκευση μέσα, αλλά συμπιεσμένα δεδομένα, εξωτερικά - για εξωτερική αποθήκευση μη συμπιεσμένων δεδομένων και επεκταθεί - για εξωτερική αποθήκευση συμπιεσμένων δεδομένων. Η εκτεταμένη χρησιμοποιείται από προεπιλογή για τους περισσότερους τύπους δεδομένων που υποστηρίζουν την αποθήκευση δεν είναι απλές. Η χρήση εξωτερικών σας επιτρέπει να επιταχύνετε τις λειτουργίες με υποσύνολο σε πολύ μεγάλες τιμές κειμένου και bytea, λόγω της απώλειας του όγκου του αποθετηρίου. Σημειώστε ότι η ίδια η ρύθμιση της πρότασης αποθήκευσης δεν αλλάζει τίποτα στον πίνακα, ζητεί μόνο μια στρατηγική που θα εφαρμοστεί με μελλοντικές αλλαγές στον πίνακα. Για περισσότερες πληροφορίες, ανατρέξτε στην ενότητα 62.2. Προσθήκη. Restription_table [Δεν είναι έγκυρη]

Αυτή η φόρμα προσθέτει ένα νέο περιορισμό στον πίνακα, με την ίδια σύνταξη ως δημιουργία πίνακα και μια πρόσθετη ένδειξη μη έγκυρης, η οποία επιτρέπεται αυτή τη στιγμή μόνο να περιορίσει τους περιορισμούς εξωτερικού κλειδιού. Εάν ο περιορισμός σημειώνεται ως μη έγκυρος, ένας δυνητικά μακροπρόθεσμος αρχικός έλεγχος των όσων πληρούν όλες οι γραμμές, παραλείπονται. Παρ 'όλα αυτά, αυτός ο περιορισμός θα ισχύσει με τις επακόλουθες προσθήκες ή αλλαγές δεδομένων (δηλαδή, αυτές οι λειτουργίες δεν θα εκτελεστούν εάν η νέα γραμμή θα παραβιάσει την κατάσταση ορίου σάρωσης ή παρουσία ενός εξωτερικού κλειδιού, δεν υπάρχει κατάλληλη γραμμή στο Κύριο τραπέζι). Αλλά η βάση δεδομένων δεν θα υποθέσει ότι ο περιορισμός εκτελείται για όλες τις σειρές του πίνακα μέχρι να ελεγχθεί χρησιμοποιώντας την επικυρωμένη εντολή περιορισμού. Προσθήκη. Restription_table_p_index

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

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

Στην περίπτωση του πρωτεύοντος κλειδιού, εάν οι στήλες ευρετηρίου δεν έχουν ακόμη επισημανθεί όχι μηδενική, αυτή η εντολή θα προσπαθήσει να εκτελέσει τη στήλη Alter Set Not Null για κάθε στήλη. Αυτό θα απαιτήσει πλήρη σάρωση του πίνακα για να βεβαιωθεί ότι οι στήλες δεν περιέχουν null. Σε όλες τις άλλες περιπτώσεις, αυτή είναι μια γρήγορη λειτουργία.

Εάν έχει καθοριστεί το οριακό όνομα, ο δείκτης θα μετονομαστεί και θα λάβει το καθορισμένο όνομα. Διαφορετικά, το όνομα του δείκτη θα είναι το οριακό όνομα.

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

Σημείωση

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

Αλλάξτε τον περιορισμό.

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

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

Ο έλεγχος μεγάλων πινάκων μπορεί να είναι αρκετά μεγάλος. Η έννοια του διαχωρισμού της επαλήθευσης από την πραγματική δημιουργία του περιορισμού είναι ότι σας επιτρέπει να αναβάλλετε τον έλεγχο για μια στιγμή μικρότερη δραστηριότητα ή να πραγματοποιήσετε πρόσθετη εργασία με υπάρχοντα σφάλματα και ταυτόχρονα να αποτρέψετε νέους. Σημειώστε ότι κατά την εφαρμογή της ίδιας της επαλήθευσης, δεν παρεμβαίνει στην εκτέλεση συνήθων εντολών εγγραφής στον πίνακα.

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

Αυτή η φόρμα διαγράφει το καθορισμένο όριο πίνακα. Εάν ορίζεται εάν υπάρχει ορίζεται και το καθορισμένο όριο δεν υπάρχει, αυτό δεν θεωρείται σφάλμα. Στην περίπτωση αυτή, εκδίδεται μόνο μια παρατήρηση. Απενεργοποίηση / Ενεργοποίηση [αντίγραφο | Πάντα] ενεργοποιήστε

Αυτές οι μορφές ρυθμίζουν τις ανταπόκριση σκανδάλης που ανήκουν στον πίνακα. Η απενεργοποιημένη σκανδάλη αποθηκεύεται στο σύστημα, αλλά δεν εκτελείται όταν το συμβάν που προκαλεί αυτό συμβαίνει. Για αναβαλλόμενους ενεργοποιητές, η κατάσταση ένταξης ελέγχεται όταν συμβεί ένα συμβάν και όχι όταν η λειτουργία σκανδάλης ονομάζεται πραγματικά. Αυτή η εντολή μπορεί να απενεργοποιήσει ή να ενεργοποιήσει μία σκανδάλη που ονομάζεται ή όλοι οι ενεργοποιητές του πίνακα ή μόνο οι προσαρμοσμένες ενεργοποιητές (εξαλείφοντας τους παράγοντες περιορισμού του ενδομένου, για παράδειγμα, οι ενεργοποιητές που εφαρμόζουν τους ξένους βασικούς περιορισμούς ή τις αναβαλλόμενες μοναδικότητες ή περιορισμούς εξαίρεσης). Για να απενεργοποιήσετε ή να συμπεριληφθείτε στην ενσωμάτωση των δημιουργημένων ενδοσυστατικών ενεργοποιημένων, οι περιορισμοί απαιτούν δικαιώματα υπερσύγχυσης. Θα πρέπει να απενεργοποιηθεί με προσοχή, καθώς είναι προφανές ότι είναι αδύνατο να διασφαλιστεί η ακεραιότητα των περιορισμών, εάν οι ενεργοποιητές δεν λειτουργούν. Ο μηχανισμός απόκρισης σκανδάλης επηρεάζει επίσης τη μεταβλητή διαμόρφωσης Secession_RePlication_Role. Που περιλαμβάνονται χωρίς πρόσθετες οδηγίες οι ενεργοποιητές θα λειτουργήσουν όταν ο ρόλος της αντιγραφής είναι " Προέλευση » (προεπιλογή) ή " Τοπική ». Οι ενεργοποιητές που περιλαμβάνονται στο ενεργοποιημένο αντίγραφο θα ενεργοποιηθούν μόνο εάν η τρέχουσα λειτουργία περιόδου σύνδεσης είναι " ΠΙΣΤΟ ΑΝΤΙΓΡΑΦΟ "Και μετά τον καθορισμό ενεργοποίησης ενεργοποιείται πάντα, ανεξάρτητα από την τρέχουσα λειτουργία αναπαραγωγής.

Αυτή η εντολή ζητά από την αποκλειστική κλειδαριά μετοχών. Απενεργοποίηση / Ενεργοποίηση [αντίγραφο | Πάντα] κανόνας

Αυτά τα έντυπα καθορίζουν την ανταπόκριση των κανόνων επανεγγραφής που σχετίζονται με τον πίνακα. Ο αποσυνδεδεμένος κανόνας αποθηκεύεται στο σύστημα, αλλά δεν ισχύει κατά τη διάρκεια της επανεγγραφής της αίτησης. Στην ουσία, αυτές οι λειτουργίες είναι παρόμοιες με τις λειτουργίες σχετικά με / αποσυνδέοντας τις ενεργοποιητές. Ωστόσο, αυτό δεν ισχύει για τους κανόνες επιλογής - εφαρμόζονται πάντοτε ότι οι παραστάσεις συνεχίζουν να εργάζονται, ακόμη και σε συνεδρίες που δεν πληρούν τον κύριο ρόλο της αντιγραφής. Απενεργοποιήστε / ενεργοποιήστε την ασφάλεια επιπέδου γραμμής

Αυτά τα έντυπα ελέγχουν την εφαρμογή των πολιτικών προστασίας γραμμών που σχετίζονται με τον πίνακα. Εάν η υπεράσπιση ανάβει, αλλά δεν καθορίζονται πολιτικές για τον πίνακα, εφαρμόζεται η πολιτική της προεπιλεγμένης πρόσβασης. Σημειώστε ότι οι πολιτικοί μπορούν να οριστούν για τον πίνακα, ακόμη και αν το επίπεδο προστασίας είναι απενεργοποιημένο - στην περίπτωση αυτή, οι πολιτικές δεν ισχύουν και οι περιορισμοί τους αγνοούνται. Δείτε επίσης Δημιουργία Πολιτικής. Δεν υπάρχει ασφάλεια επιπέδου σε επίπεδο δύναμης / δύναμης

Αυτά τα έντυπα ελέγχουν την εφαρμογή των πολιτικών προστασίας γραμμών που σχετίζονται με τον πίνακα όταν ο χρήστης είναι ιδιοκτήτης του. Εάν η συμπεριφορά αυτή ενεργοποιηθεί, η αμυντική πολιτική των σειρών θα ενεργήσει στον ιδιοκτήτη του πίνακα. Εάν είναι απενεργοποιημένη (προεπιλογή), η προστασία προστασίας συμβολοσειράς δεν θα ισχύει με τον χρήστη που είναι ο ιδιοκτήτης του πίνακα. Δείτε επίσης Δημιουργία Πολιτικής. Συστάδα.

Αυτή η φόρμα επιλέγει τον προεπιλεγμένο δείκτη για τις μεταγενέστερες λειτουργίες συμπλέγματος. Η πραγματική ομαδοποίηση του πίνακα δεν εκτελείται.

Απαιτείται η αποκλειστική ενημέρωση της κοινής χρήσης να αλλάζει παράμετροι ομαδοποίησης. Ορίστε χωρίς σύμπλεγμα.

Αυτή η φόρμα διαγράφει την τελευταία συγκεκριμένη προδιαγραφή ευρετηρίου για σύμπλεγμα. Η δράση του θα επηρεάσει τις μελλοντικές εργασίες ομαδοποίησης για τις οποίες δεν θα καθοριστεί ο δείκτης.

Απαιτείται η αποκλειστική ενημέρωση της κοινής χρήσης να αλλάζει παράμετροι ομαδοποίησης. Σετ με OIDs.

Αυτή η φόρμα προσθέτει τη στήλη συστήματος OID στον πίνακα (βλ. Παράγραφο 5.4). Εάν ο πίνακας έχει ήδη μια τέτοια στήλη, δεν κάνει τίποτα.

Παρατηρήστε ότι αυτό δεν είναι ισοδύναμο με την εντολή Προσθήκη στήλης OID OID (αυτή η εντολή θα προσθέσει μια συστηματική, αλλά μια συνηθισμένη στήλη με κατάλληλο όνομα OID). Ορίστε χωρίς oids.

Αυτή η φόρμα διαγράφει τη στήλη συστήματος OID από τον πίνακα. Αυτό είναι ακριβώς ισοδύναμο με την πτώση της στήλης OID να περιορίσει, εκτός από το ότι, απουσία της στήλης OID, δεν θα υπάρχουν σφάλματα. Ορίστε το Tablespace.

Αυτή η φόρμα αλλάζει το τραπέζι του πίνακα στο καθορισμένο και μετακινεί τα αρχεία δεδομένων που σχετίζονται με τον πίνακα σε ένα νέο χώρο. Δείκτες πίνακα, εάν υπάρχουν, μην μετακινηθείτε. Ωστόσο, μπορούν να μετακινηθούν ξεχωριστά από πρόσθετες εντολές που ορίσματος ορίζονται. Όλοι στο Tablespace σάς επιτρέπουν να μεταφέρετε όλα τα τραπέζια διαστολής σε άλλο τραπέζι, ενώ πρώτα αποκλείει όλα τα τραπέζια και στη συνέχεια μεταφέρει κάθε ένα από αυτά. Το έντυπο αυτή υποστηρίζει επίσης τις οδηγίες της ιδιοκτησίας, με το οποίο μετακινούνται μόνο οι πίνακες του συγκεκριμένου κατόχου. Εάν έχει καθοριστεί η παράμετρος τώρα, η εντολή θα τερματίσει το σφάλμα αν δεν μπορείτε να πάρετε αμέσως όλες τις απαιτούμενες κλειδαριές. Σημειώστε ότι οι καταλόγους συστήματος αυτό το έντυπο δεν μετακινείται. Εάν πρέπει να τα μετακινήσετε, θα πρέπει να χρησιμοποιήσετε τη βάση δεδομένων αλλαγής ή ρητής κλήσεων αλλαγής πίνακα. Οι σχέσεις πληροφοριών_Schema δεν θεωρούνται μέρος των διευθυντών του συστήματος και υπόκεινται σε μετατόπιση. Δείτε επίσης δημιουργήστε το Tabletpace. Σετ (καταγεγραμμένο | χωρίς συγκόλληση)

Αυτή η φόρμα αλλάζει το χαρακτηριστικό καταγραφής του πίνακα, καθιστά τη βαθμολογία πίνακα / μη αντανακλάται, αντίστοιχα (βλέπε άντραχος). Δεν ισχύει για τον προσωρινό πίνακα. Ορισμός ( Parameter_she γεγονός = αξία [, ... ])

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

Για να αλλάξετε τις παραμέτρους του συντελεστή πλήρωσης και του καθαρισμού αυτόματης καθαρισμού, ζητάται από μέριμνα αποκλειστική κλειδαριά.

Σημείωση

Αν και η δημιουργία πίνακα σάς επιτρέπει να καθορίσετε oids στη σύνταξη με ( Parameter_she γεγονός), Ο πίνακας Alter δεν αντιλαμβάνεται OIDs ως παράμετρος αποθήκευσης. Επομένως, για να αλλάξετε τα χαρακτηριστικά OID, χρησιμοποιήστε το σετ με OIDs και ρυθμίστε τη φόρμα OIDS.

Επαναφορά ( Parameter_she γεγονός [, ... ])

Αυτή η φόρμα επαναφέρει μία ή περισσότερες παραμέτρους αποθήκευσης στις προεπιλεγμένες τιμές. Όπως συμβαίνει με το σετ, μπορεί να χρειαστεί να αντικαταστήσετε το τραπέζι για την πλήρη ενημέρωση του πίνακα. Κληρονομώ. Πίνακας_Rodel

Αυτή η φόρμα εκχωρεί ένα τραπέζι στόχο με έναν απόγονο ενός συγκεκριμένου μητρικού πίνακα. Στη συνέχεια, οι αιτήσεις προς το μητρικό πίνακα θα περιλαμβάνουν αρχεία και πίνακα στόχο. Προκειμένου ο πίνακας να γίνει ένας απόγονος, θα πρέπει να περιέχει τις ίδιες στήλες με τον γονέα (αν και μπορεί να περιλαμβάνει πρόσθετες στήλες). Οι στήλες πρέπει να έχουν τους ίδιους τύπους δεδομένων και, εάν ορισμένοι από αυτούς έχουν μη μηδενικό περιορισμό στο μητρικό τραπέζι, πρέπει να έχουν ένα μηδενικό όριο στον πίνακα απόγονο.

Επίσης στον πίνακα-απόγονο θα πρέπει να παρακολουθούνται από όλους τους περιορισμούς του μητρικού πίνακα, με εξαίρεση το μη εξωτερικό (δηλαδή, που δημιουργείται από τον πίνακα Alter ... Προσθήκη περιορισμού ... δεν κληρονομεί), τα οποία αγνοούνται. Στην περίπτωση αυτή, όλοι οι σχετικοί περιορισμοί στον απογευματικό πίνακα δεν πρέπει να είναι μη εξωτερικές. Επί του παρόντος, το μοναδικό, πρωταρχικό κλειδί και το ξένο κλειδί δεν λαμβάνονται υπόψη, αλλά στο μέλλον μπορεί να αλλάξει. Καμία κληρονομιά. Πίνακας_Rodel

Αυτή η φόρμα διαγράφει έναν πίνακα στόχο από τον κατάλογο των απογόνων του συγκεκριμένου μητρικού πίνακα. Τα αποτελέσματα των αιτήσεων για το μητρικό πίνακα δεν θα περιλαμβάνουν αρχεία που λαμβάνονται από τον πίνακα στόχο. Του. Ονομα

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

Αυτή η φόρμα σπάει τη σύνδεση του δακτυλογραφημένου πίνακα με τον τύπο του. Ιδιοκτήτης

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

Αυτή η φόρμα αλλάζει τις πληροφορίες που καταγράφονται στο αρχείο καταγραφής προ-αναγνώρισης για τον εντοπισμό των μεταβλητών ή διαγραμμένων γραμμών. Αυτή η παράμετρος ισχύει μόνο όταν χρησιμοποιεί λογική αναπαραγωγή. Στην προεπιλεγμένη λειτουργία (προεπιλογή για πίνακες μη συστήματος), οι παλιές τιμές των στηλών του κύριου πλήκτρου γράφονται αν είναι. Στη χρήση της λειτουργίας ευρετηρίου, οι παλιές τιμές των στηλών που συνιστούν τον καθορισμένο δείκτη, το οποίο πρέπει να είναι μοναδικό, όχι μερικό, να μην αναβληθεί και να περιλαμβάνει μόνο τις στήλες που δεν έχουν σημειωθεί μηδέν. Σε πλήρη λειτουργία, οι παλιές τιμές όλων των στηλών στη συμβολοσειρά καταγράφονται και στη λειτουργία τίποτα (προεπιλογή για πίνακες συστήματος), δεν καταγράφονται πληροφορίες σχετικά με την παλιά γραμμή. Σε όλες τις περιπτώσεις, οι παλιές τιμές καταγράφονται στο αρχείο καταγραφής, μόνο εάν τουλάχιστον μία στήλη είναι από εκείνα που πρέπει να καταγράφονται, πραγματοποιήθηκαν αλλαγές σε μια νέα γραμμή. Μετονομάζω.

Μορφές μετονομασίας Αλλάξτε το όνομα του πίνακα (ή δείκτη, ακολουθία, αναπαραστάσεις, υλοποιημένη προβολή ή τραπέζι τρίτου μέρους), το όνομα της χωριστής στήλης πίνακα ή το όνομα του ορίου του πίνακα. Δεν επηρεάζει τα αποθηκευμένα δεδομένα. Ορίστε το σχήμα.

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

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

Ο πίνακας Alter μπορεί να κρατήσει μόνο τον ιδιοκτήτη του αντίστοιχου πίνακα. Για να αλλάξετε το σχήμα ή τον πίνακα του πίνακα, είναι επίσης απαραίτητο να δημιουργήσετε το σωστό σε ένα νέο σχήμα ή πίνακα. Για να φτιάξετε ένα τραπέζι με έναν απόγονο ενός άλλου πίνακα, πρέπει να είστε ο ιδιοκτήτης και το μητρικό τραπέζι. Για να αλλάξει ο ιδιοκτήτης, είναι απαραίτητο να είναι ένα άμεσο ή μεσολαβητικό μέλος του νέου ιδιοκτήτη ρόλου και ο ρόλος αυτός πρέπει να έχει το δικαίωμα να δημιουργήσει στο πλαίσιο του πίνακα. (Με αυτούς τους περιορισμούς όταν αλλάζετε τον ιδιοκτήτη, τίποτα δεν συμβαίνει ότι ήταν αδύνατο να γίνει, έχοντας το δικαίωμα να διαγράψετε και να δημιουργήσετε ξανά ένα τραπέζι. Ωστόσο, ο superuser μπορεί να αλλάξει τον ιδιοκτήτη του πίνακα σε κάθε περίπτωση.) Για να προσθέσετε μια στήλη , Αλλάξτε τον τύπο της στήλης ή εφαρμόστε την επίθεση του OvTay, με τη σωστή χρήση για τον κατάλληλο τύπο δεδομένων.

Παράμετροι

Όνομα (ενδεχομένως συμπληρωμένο από ένα κύκλωμα) που υπάρχει ο υπάρχων πίνακας. Εάν το όνομα του πίνακα υποδεικνύεται μόνο, μόνο ένας συγκεκριμένος πίνακας αλλάζει. Χωρίς μόνο, ο καθορισμένος πίνακας αλλάζει και όλοι οι απόγονοί της (αν υπάρχουν). Μετά το όνομα του τραπεζιού, μπορείτε επίσης να προσθέσετε μια προαιρετική ένδειξη * για να ορίσετε ρητά ότι όλα τα τραπέζια παιδιών υπόκεινται σε αλλαγές. Namestolbitsa

Το όνομα της νέας ή υπάρχουσας στήλης. New_imia_stolbtsy

Το νέο όνομα της υπάρχουσας στήλης. νέο όνομα

Νέο όνομα πίνακα. Τύπος_Data

Τύπος δεδομένων μιας νέας στήλης ή ενός νέου τύπου δεδομένων μιας υπάρχουσας στήλης. Restription_table

Νέος περιοριστικός πίνακας. Όνομα προγράμματος

Το όνομα του νέου ή του υπάρχοντος ορίου. Αλληλουχία.

Αυτόματη διαγραφή αντικειμένων ανάλογα με την επιλεγμένη στήλη ή τους περιορισμούς (για παράδειγμα, απόψεις που περιέχουν αυτή τη στήλη) και, με τη σειρά τους, όλα τα αντικείμενα εξαρτώνται από αυτά (βλ. Παράγραφο 5.13). ΠΕΡΙΟΡΙΖΩ.

Αρνούνται να αφαιρέσετε τη στήλη ή τους περιορισμούς εάν εξαρτώνται αντικείμενα από αυτά. Αυτή είναι η προεπιλεγμένη συμπεριφορά. Όνομα_trggger

Το όνομα περιλαμβάνεται ή απενεργοποιείται η σκανδάλη. Ολα.

Απενεργοποιήστε ή ενεργοποιήστε όλες τις ενεργοποιημένες που ανήκουν στον πίνακα. (Αυτό απαιτεί το δικαίωμα του superuser, εάν η δημιουργούμενη ενδοτεχνική εξαίρεση ενεργοποιείται μεταξύ αυτών των ενεργοποιημένων, όπως οι περιορισμοί του εξωτερικού κλειδιού ή των αναβαλλόμενων περιορισμών της μοναδικότητας και των εξαιρέσεων.) Χρήστης

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

Το όνομα του υπάρχοντος δείκτη. Parameter_she γεγονός

Όνομα αποθήκευσης πίνακα αξία

Τη νέα τιμή της παραμέτρου αποθήκευσης του πίνακα. Αυτό μπορεί να είναι ένας αριθμός ή μια συμβολοσειρά, ανάλογα με την παράμετρο. Πίνακας_Rodel

Το μητρικό τραπέζι με το οποίο η σύνδεση αυτού του πίνακα θα εγκατασταθεί ή θα σχιστεί. New_vladeller

Το όνομα του χρήστη που διορίζεται από τον νέο ιδιοκτήτη του πίνακα. New_tabl_space

Το όνομα του πίνακα στον οποίο θα μετακινηθεί ο πίνακας. New_shem

Το όνομα του κυκλώματος στο οποίο θα μετακινηθεί ο πίνακας.

Παρατηρήσεις

Η λέξη-κλειδί στήλης δεν φέρει το σημασιολογικό φορτίο και μπορεί να παραλειφθεί.

Όταν η στήλη προστίθεται χρησιμοποιώντας τη στήλη Προσθήκη, σε όλες τις υπάρχουσες συμβολοσειρές στον πίνακα, αυτή η στήλη αρχικοποιείται με την προεπιλεγμένη τιμή (ή μηδενική αν λείπει η προεπιλεγμένη προσφορά για τη στήλη). Εάν λείπει η προεπιλεγμένη προσφορά, μειώνεται μόνο στην αλλαγή των μεταδεδομένων, οι άμεσες αλλαγές στον πίνακα δεν συμβαίνουν. Οι προστιθέμενες μηδενικές τιμές εμφανίζονται κατά την ανάγνωση.

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

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

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

Η μορφή στήλης πτώσης δεν διαγράφει φυσικά τη στήλη, αλλά απλά το καθιστά αόρατο για τις λειτουργίες SQL. Με τις επακόλουθες λειτουργίες προσθήκης ή αλλαγής σε αυτή τη στήλη, θα καταγραφεί η Null τιμή. Έτσι, η αφαίρεση της στήλης εκτελείται γρήγορα, αλλά το μέγεθος του πίνακα στο δίσκο δεν μειώνεται, καθώς ο χώρος που καταλαμβάνεται από μια απομακρυσμένη στήλη δεν απελευθερώνεται. Αυτός ο χώρος θα κυκλοφορήσει με το χρόνο, καθώς οι υπάρχουσες γραμμές αλλάζουν. (Κατά την αφαίρεση της στήλης συστήματος OID, αυτή η συμπεριφορά δεν παρατηρείται, καθώς ο πίνακας εκτελείται αμέσως.)

Προκειμένου να απελευθερώσει βίαια ο χώρος που καταλαμβάνεται από μια στήλη, η οποία αφαιρέθηκε, μπορείτε να εκτελέσετε μία από τις μορφές του πίνακα αλλαγής, οι οποίες παράγουν αντικαθιστώντας ολόκληρο τον πίνακα. Ως αποτέλεσμα, όλες οι γραμμές θα αναδημιουργηθούν έτσι ώστε στην απομακρυσμένη στήλη να περιέχεται null.

Η αντικατάσταση των φόρμας Alter Table δεν είναι ασφαλής από την άποψη του MVCC. Μετά την αντικατάσταση, ο πίνακας θα φανεί άδειο για παράλληλες συναλλαγές εάν λειτουργούν με ένα στιγμιότυπο που λαμβάνεται μέχρι την αντικατάσταση. Για λεπτομέρειες, ανατρέξτε στην ενότητα 13.5.

Κατά τον προσδιορισμό της πρότασης τύπου δεδομένων, μπορείτε πραγματικά να καταγράψετε την έκφραση με παλιές τιμές σειράς. Δηλαδή, μπορεί να αναφέρει τόσο στις μετατρεπόμενες στήλες όσο και στις άλλες. Αυτό σας επιτρέπει να εγγράφετε πολύ γενικούς μετασχηματισμούς δεδομένων στον καθορισμένο τύπο δεδομένων. Λαμβάνοντας υπόψη αυτή την ευελιξία, η έκφραση που χρησιμοποιεί δεν ισχύει για την προεπιλεγμένη τιμή αυτής της στήλης (εάν υπάρχει). Το αποτέλεσμα μπορεί να μην είναι μια σταθερή έκφραση, η οποία απαιτείται για την προεπιλεγμένη τιμή. Αυτό σημαίνει ότι, ελλείψει μιας ρητής συσκευής ή αναθέτοντας έναν παλιό τύπο, ο ορισμός τύπος δεδομένων μπορεί να μην αντιμετωπίσει την προεπιλεγμένη μετατροπή αξίας, παρά το γεγονός ότι εφαρμόζεται η χρήση της χρήσης της πρότασης. Σε αυτές τις περιπτώσεις, πρέπει να διαγράψετε την προεπιλεγμένη τιμή χρησιμοποιώντας προεπιλογή πτώσης, εκτελέστε τον τύπο αλλαγής και, στη συνέχεια, χρησιμοποιώντας το Set Default Set μια νέα προεπιλεγμένη τιμή. Τέτοιες εκτιμήσεις ισχύουν και σε σχέση με τους δείκτες και τους περιορισμούς με αυτή τη στήλη.

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

Η αναδρομική στήλη πτώσης λειτουργίας θα αφαιρέσει τη στήλη από το παιδικό τραπέζι, μόνο εάν αυτή η στήλη δεν κληρονομείται από άλλους άλλους γονείς και δεν ορίστηκε ανεξάρτητα στη θυγατρική. Η στήλη πτώσης λειτουργίας μη-συστήματος (δηλ. Μόνο αλλαγή πίνακα ... στήλη πτώσης) Ποτέ μην διαγράφει κληρονομικές στήλες, αλλά αντ 'αυτού σηματοδοτούν ως ανεξάρτητα σίγουρα, μη κληρονομικά.

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

Δεν επιτρέπονται αλλαγές στους πίνακες καταλόγου συστήματος.

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

Παραδείγματα

Προσθήκη στήλης τύπου VARAR στον πίνακα:

Αλλαγή διανομέων πίνακα Προσθήκη διεύθυνσης στήλης VARCHAR (30).

Διαγραφή στήλης από τον πίνακα:

Αλλάξτε τους διανομείς πίνακα πτώση της διεύθυνσης στήλης.

Αλλαγή των τύπων δύο υφιστάμενων στηλών σε μία λειτουργία:

Αλλάξτε τους διανομείς πίνακα Αλλάξτε τον τύπο διεύθυνσης στήλης VARCHAR (80), αλλάξτε τον τύπο ονόματος στήλης VARCRAR (100).

Αλλαγή μιας στήλης ακέραιου ακέραιου, η οποία περιέχει το χρόνο στο στυλ του Unix, στο Timestamp με τον τύπο ζώνης ώρας χρησιμοποιώντας την προσφορά χρησιμοποιώντας:

Alter Table Foo Αλλαγή στήλης Foo_Timestamp Ρύθμιση Τύπος Δεδομένων Τύπος Τύπος Timestamp με ζώνη ώρας χρησιμοποιώντας χρονικό διάστημα με ζώνη ώρας "Epoch" + Foo_Timestamp * Διάστημα "1 δευτερόλεπτο";

Το ίδιο πράγμα, αλλά στην περίπτωση που η στήλη έχει προεπιλεγμένη τιμή που δεν οδηγείται αυτόματα σε νέο τύπο δεδομένων:

Alter Table Foo Αλλαγή στήλης Foo_Timestamp Drop Defach, Alter Column Foo_Timestamp Τύπος Timestamp με ζώνη ώρας "EPOCH" + FOO_TIMESTAMP * Διάστημα "1 δευτερόλεπτο", Alter Column Foo_Timestamp Ορίστε προεπιλογή τώρα ();

Μετονομάστε μια υπάρχουσα στήλη:

Αλλάξτε τους διανομείς πίνακα μετονομασία της διεύθυνσης στήλης στην πόλη.

Μετονομάστε τον υπάρχοντα πίνακα:

Αλλαγή πίνακα districutis μετονομασία στους προμηθευτές.

Μετονομάστε έναν υπάρχοντα περιορισμό:

Αλλάξτε τους διανομείς πίνακα μετονομασία περιορισμού Zipchk στο zip_check;

Προσθήκη όχι μηδενικού περιορισμού στη στήλη:

Αλλάξτε τους διανομείς πίνακα Αλλάξτε το Street Column Set Not Null.

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

Αλλαγή των διανομέων πίνακα αλλάζουν την πτώση του δρόμου στη στήλη όχι null?

Προσθέτοντας ένα όριο ελέγχου στον πίνακα και όλους τους απογόνους της:

Αλλαγή διανομέων πίνακα Προσθέστε Constraint Zipchk Check (Char_Length (Zipcode) \u003d 5);

Προσθέτοντας όριο ελέγχου μόνο στον πίνακα, αλλά όχι στους απογόνους της:

Αλλαγή διανομέων πίνακα Προσθέστε τον περιορισμό Zipchk Check (Char_Length (Zipcode) \u003d 5) Δεν κληρονομεί.

(Αυτό το χρονικό όριο δεν θα κληρονομείται και οι μελλοντικοί απόγονοι.)

Αφαίρεση ορίου ελέγχου από τον πίνακα και από όλους τους απογόνους:

Αλλαγή πίνακα districtutis drop constraint zipchk?

Διαγραφή του ορίου ελέγχου μόνο από τον ίδιο τον πίνακα:

Αλλάξτε τον πίνακα μόνο dreamputis drop constraint zipchk?

(Ο έλεγχος περιορισμού παραμένει σε όλες τις θυγατρικές.)

Προσθήκη εξωτερικού βασικού περιορισμού στον πίνακα:

Οι διανομείς πίνακα αλλαγής προσθέτουν περιορισμούς ξένων κλειδιών αναφοράς (διεύθυνση) διευθύνσεις αναφοράς (διεύθυνση).

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

Αλλαγή διανομέων πίνακα Προσθήκη περιορισμού Ξέλινο πλήκτρο Distfk (Διεύθυνση) Οι διευθύνσεις (Διεύθυνση) δεν είναι έγκυρες. Alter Table Districtutis επικυρώστε τον περιορισμό Distfk.

Προσθήκη περιορισμών μοναδικότητας στον πίνακα (αρκετές στήλες):

Αλλαγή διανομέων πίνακα Προσθήκη περιορισμού dist_id_zipcode_key μοναδικό (dist_id, zipcode);

Προσθήκη στον πίνακα πρωτεύουσας κλειδιού με αυτόματο όνομα (Λάβετε υπόψη ότι μπορεί να υπάρχει μόνο ένα κύριο κλειδί στον πίνακα):

Αλλάξτε τους διανομείς πίνακα προσθέτουν πρωτεύον κλειδί (dist_id).

Μετακινήστε το τραπέζι σε άλλο τραπέζι:

Αλλάξτε τους διανομείς πίνακα που ορίζονται τα τραπέζια σπαθί.

Μετακινήστε το τραπέζι σε άλλο σχήμα:

Αλλαγή πίνακα myschema.distributers σύνολο σχήματος yourschema;

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

Δημιουργία μοναδικού δείκτη ταυτόχρονα dist_id_temp_idx σε διανομέα (dist_id); Αλλαγή διανομέων πίνακα drop distributes_pkey, προσθέστε περιορισμούς distributs_pey πρωτογενή κλειδί χρησιμοποιώντας δείκτη dist_id_temp_idx;

Συμβατότητα

Προσθέστε φόρμες (χωρίς χρήση ευρετηρίου), πτώση, ορίστε τον προεπιλεγμένο και ορίστε τον τύπο δεδομένων (χωρίς τη χρήση) που συμμορφώνονται με το πρότυπο SQL. Άλλες μορφές είναι επεκτάσεις του SQL Standard που εφαρμόζεται στο Postgres Pro. Επιπλέον, η επέκταση είναι η δυνατότητα να καθορίσετε αρκετές αλλαγές στον πίνακα Alter σε μία εντολή.

Η στήλη Drop Table Drop σάς επιτρέπει να αφαιρέσετε μια στήλη ενιαίας τραπέζης και αφήστε έναν πίνακα χωρίς στήλες. Αυτή είναι μια επέκταση του SQL Standard, η οποία δεν επιτρέπει την ύπαρξη πινάκων με μηδενικές στήλες.

Η εντολή Table Table SQL έχει σχεδιαστεί για να αλλάξει τη δομή της στήλης πίνακα βάσης δεδομένων, εάν ο πίνακας υπάρχει ήδη.

Αλλάξτε τον πίνακα για να προσθέσετε και να διαγράψετε μια στήλη, προεπιλεγμένες τιμές

Ένα αίτημα στην εντολή Alter Table για να προσθέσετε μια νέα στήλη στον πίνακα έχει την ακόλουθη σύνταξη:

Alter Table όνομα_table addname_name_stolbet type_data

Παράδειγμα 1. Υπάρχει μια εταιρεία δεδομένων - εταιρεία. Έχει έναν πίνακα υπαλλήλων (υπάλληλος). Πρέπει να προσθέσετε μια νέα στήλη σε αυτόν τον πίνακα - σεξ (πάτωμα). Το αντίστοιχο αίτημα έχει ως εξής:

Αλλάξτε τον υπάλληλο πίνακα προσθέστε το σεξ char (1)

Ας χρειαστεί τώρα να ορίσετε την τιμή των αρχείων στον προεπιλεγμένο πίνακα. Ένα αίτημα στην εντολή Alter Table για το σκοπό αυτό περιέχει μια άλλη στήλη Command - Alter - και έχει την ακόλουθη σύνταξη:

Alter Table Name_Table Alter Column_name_Stolbets Ρυθμίστε την προεπιλογή "Value_pu_umol"

Παράδειγμα 2. Αφήστε στην επιχείρηση, η βάση δεδομένων του οποίου ονομάζεται εταιρεία, εργάζονται κυρίως γυναίκες. Ο διαχειριστής βάσης δεδομένων αποφάσισε να μειώσει τη διαδικασία συμπλήρωσης των δεδομένων της στήλης φύλου (φύλο) και να ρυθμίσει την προεπιλεγμένη τιμή - "F" (που σημαίνει το γυναικείο πάτωμα). Το αντίστοιχο αίτημα έχει ως εξής:

Αλλαγή του πίνακα Οι υπάλληλοι μετατρέψτε τη στήλη σεξ σερίδιο προεπιλογή "F"

Τώρα μόνο αν ένας νέος υπάλληλος είναι ένας άνθρωπος, θα χρειαστεί να χωρέσετε στη στήλη φύλου την αξία "M" και στις περισσότερες περιπτώσεις η τιμή θα οριστεί από προεπιλογή - "F".

Χρησιμοποιώντας ένα ερώτημα με την εντολή Alter Table, μπορείτε να αφαιρέσετε τη στήλη από τον πίνακα. Η σύνταξη της εντολής θα είναι η εξής:

Alter Table Name_Table Drop Column_stolb

Παράδειγμα 3. Ας υποθέσουμε ότι στην ίδια βάση δεδομένων της εταιρείας από τον πίνακα των εργαζομένων, πρέπει να αφαιρέσετε τη στήλη σεξ (πάτωμα). Το αντίστοιχο αίτημα έχει ως εξής:

Αλλάξτε το σεξ

Έτσι, μια νέα στήλη εμφανίστηκε στον πίνακα, οι τιμές των οποίων μπορούν να λάβουν τον τύπο χαρακτήρα και να αποτελούνται από ένα σύμβολο.

Αλλάξτε το τραπέζι για να προσθέσετε τα κλειδιά

Σχετικά με τα κλειδιά σε πίνακες βάσεων δεδομένων - στην τάξη Μοντέλο σχεσιακών δεδομένων . Εάν το κύριο κλειδί (πρωτεύον κλειδί) δεν ορίζεται κατά τη δημιουργία ενός πίνακα βάσης δεδομένων, μπορεί να γίνει χρησιμοποιώντας την εντολή Alter Table. Σύνταξη ομάδας σε περίπτωση απλού πρωταρχικού κλειδιού Επόμενο:

Alter Table Name_Table Προσθήκη πρωτεύοντος κλειδιού (Sidentiad_Name)

Τη σύνταξη της εντολής στην περίπτωση ενός σύνθετου πρωταρχικού κλειδιού:

Alter Table όνομα_table Προσθήκη πρωτεύοντος πλήκτρου (Edentifier__Name_1___2_Name_2)

Παράδειγμα 4. Συνεργαζόμαστε με την ίδια βάση δεδομένων της εταιρείας, με τη στήλη των εργαζομένων. Μπορούμε να προσθέσουμε ένα απλό κύριο κλειδί αυτής της στήλης με τη μορφή αναγνωριστικού υπαλλήλου και να το κάνουμε αυτό:

Αλλάξτε τον υπάλληλο του πίνακα προσθέστε πρωτεύον κλειδί (EMP_ID)

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

Αλλάξτε τον υπάλληλο του πίνακα Προσθέστε πρωτεύον κλειδί (EMP_ID, DEPT_ID)

Αλλάξτε τον πίνακα για να προσθέσετε και να αφαιρέσετε τους περιορισμούς

Για τους περιορισμούς της ακεραιότητας, δήλωσε στην τάξη Μοντέλο σχεσιακών δεδομένων . Εάν είναι σύντομα - όταν διαγράφετε οποιαδήποτε σειρά από έναν πίνακα (1), σε άλλο τραπέζι (2), η συμβολοσειρά στην οποία αναφέρεται στη γραμμή του πίνακα (1), δεν πρέπει να υπάρχουν αναφορές που δεν περιέχονται στον πίνακα (1) , δηλαδή, συνδέσεις που οδηγούν στο πουθενά.

Η εντολή Alter Table μπορεί να χρειαστεί να ρυθμίσει την τιμή NULL για έναν τέτοιο σύνδεσμο. Η σύνταξή του έχει ως εξής:

Alter table_name_table_tablables Προσθέστε τον περιορισμό ξένων κλειδιών Όνομα_Date παραπομπές_table_table_name_tela_table_name_tela_telete set null

Παράδειγμα 5. Ας υποθέσουμε ότι στην ίδια βάση δεδομένων της εταιρείας, πρέπει να εγκαταστήσετε ένα όριο αναφοράς: όταν διαγράφετε οποιοδήποτε τμήμα από τον πίνακα LEPT στον πίνακα των εργαζομένων, περιέχει συνδέσμους σε αυτά τα τμήματα, η τιμή Link (εξωτερικό κλειδί) πρέπει να ρυθμιστεί σε Null (εντελώς απροσδιόριστος). Το αντίστοιχο αίτημα έχει ως εξής:

Αλλάξτε τον υπάλληλο του πίνακα προσθέστε τον περιορισμό Dept_Id ξένο κλειδί (DEPT_ID) Οι παραπομπές υποβολής στη διαγραφή Set Null

Έτσι, εάν υπάρχει υπάλληλος που εργάζεται στο Τμήμα που ξαφνικά έχει εξαλειφθεί και το αρχείο της απομάκρυνσης από το τραπέζι, στη συνέχεια στην καταγραφή αυτού του υπαλλήλου, η αξία της στήλης DEPT_ID θα λάβει την αξία του Null.

Ένα αίτημα προς την εντολή Alter Table μπορεί επίσης να απαγορευτεί για τη διαγραφή καταχωρήσεων αναφοράς από τον πίνακα (1) εάν υπάρχει τουλάχιστον μία είσοδος στον πίνακα (2) στην οποία αναφέρεται η καταγραφή στον πίνακα (1). Η σύνταξη ενός τέτοιου αιτήματος έχει ως εξής:

Alter Tank Name_shik_tably Προσθέστε περιορισμούς ξένων κλειδιών key_name παραπομπές_name_table_name_te_the_ Διαγραφή περιορισμού

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

Αλλαγή προετοιμασίας πίνακα Προσθέστε τον περιορισμό GR_ID ξένο κλειδί (GR_ID) Ομάδα αναφορών σε διαγραφή περιορισμού

Καθορίζουμε την απαγόρευση της απομάκρυνσης του φαρμακείου από το τραπέζι φαρμακείου, εάν υπάρχει τουλάχιστον ένας υπάλληλος αυτού του φαρμακείου, ο οποίος καθορίζεται από το αρχείο στον πίνακα των εργαζομένων:

Αλλαγή του υπαλλήλου του πίνακα Προσθέστε περιορισμούς PH_ID Ξένων Κλειδί (PH_ID) Φαρμακείο στη διαγραφή περιορισμού

Ένα αίτημα για την εντολή Alter Table μπορεί επίσης να προσδιοριστεί ότι αν διαγράψετε μια καταχώρηση στον πίνακα (2), η οποία αναφέρεται στην καταχώρηση στον πίνακα (1), πρέπει να αφαιρέσετε όλες τις αντίστοιχες εγγραφές στον πίνακα (1) . Η σύνταξη ενός τέτοιου αιτήματος έχει ως εξής:

Alter Table_Name_Table_Table Προσθέστε τον περιορισμό ξένων key_name_tenences_table_table_name_name_tela_telete cascade

Παράδειγμα 7.

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

Αλλάξτε τη διαθεσιμότητα πίνακα Προσθήκη περιορισμού PR_ID Ξένων Κλειδί (PR_ID) Προετοιμασία της διαγραφής Cascade

Τώρα ορίζουμε ότι αν αφαιρέσετε το φαρμακείο από το τραπέζι φαρμακείου, τότε όλα τα αρχεία αυτού του φαρμακείου πρέπει να αφαιρεθούν στον πίνακα διαθεσιμότητας:

Αλλαγή διαθεσιμότητας πίνακα Προσθέστε περιορισμούς PH_ID Ξένων Κλειδί (PH_ID) Διαμαρτυρία Φαρμακείο στη διαγραφή Cascade

Η ακόλουθη εντολή τροποποιεί τον πίνακα ελλείμματος και καθορίζει ότι αν αφαιρέσετε την προετοιμασία από τον πίνακα προετοιμασίας, όλες οι εγγραφές αυτού του φαρμάκου πρέπει να διαγραφούν στον πίνακα ελλείμματος:

Αλλαγή ελλείμματος πίνακα Προσθέστε περιορισμούς PR_ID Ξένων Κλειδί (PR_ID) Προετοιμασία της διαγραφής Cascade

Iv class \u003d "ακόμα"\u003e

Τροποποιούμε και πάλι τον πίνακα ελλείμματος και προσδιορίζουμε ότι αν αφαιρέσετε το φαρμακείο από τον πίνακα φαρμακείου, όλα τα αρχεία αυτού του φαρμακείου πρέπει να διαγραφούν στον πίνακα ελλείμματος:

Αλλαγή του ελλείμματος του πίνακα Προσθέστε τον περιορισμό PH_ID ξένο κλειδί (PH_ID) Φαρμακείο στη διαγραφή Cascade

Ένα ερώτημα με την εντολή Alter Table μπορεί να εγκατασταθεί ένα όριο ελέγχου. Η σύνταξη ενός τέτοιου αιτήματος έχει ως εξής:

Alter Table όνομα_tablice Προσθέστε Checkaint Check_data Check (Verstover_Long)

Παράδειγμα 8. Συνεχίζουμε να συνεργαζόμαστε με τη βάση δεδομένων του δικτύου φαρμακείου.

Πρέπει να τροποποιήσετε τον πίνακα διαθεσιμότητας και να καθορίσετε ότι στο ίδιο ρεκόρ η αξία του χαρακτηριστικού του πίνακα παραχωρήσεων δεν πρέπει να είναι μικρότερη από την ημερομηνία έναρξης.

Αλλαγή διαθεσιμότητας πίνακα Προσθέστε Checkita Check_Data Check (DatestArt

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

Αλλαγή ελλείμματος πίνακα Προσθήκη ελέγχου περιορισμού_Data (DatestArt

Σχεσιακές βάσεις δεδομένων και γλώσσα SQL

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

Το πρότυπο ANSI είναι κάτι όπως ο μικρότερος κοινός παρονομαστής για όλους τους κατασκευαστές, αν και δεν εφαρμόζεται κάθε χαρακτηριστικό της τυπικής έκδοσης του πίνακα δημιουργίας και της αλλαγής πίνακα. Παρ 'όλα αυτά, το πρότυπο ANSI είναι μια βασική μορφή που μπορεί να χρησιμοποιηθεί σε όλες τις πλατφόρμες.

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

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

SQL 2003 Σύνταξη

Κατά την εκτέλεση της δημιουργίας οδηγιών πίνακα, το πρότυπο SQL 2003 στη βάση δεδομένων δημιουργεί ένα σταθερό ή προσωρινό τραπέζι. Η σύνταξη είναι επόμενη.

Δημιουργία [(τοπική προσωρινή) παγκόσμια προσωρινή)] πίνακας όνομα_tablique (όνομα Longbits Type_Data χαρακτηριστικά [, ...]) | [Όνομα περιπατητή με επιλογές επιλογών] | | (Που παράγεται από το σύστημα | που παράγεται από το χρήστη | προέρχεται)] [, ...]] [demote_table]] name_table type_dan χαρακτηριστικά] | Ορίστε το Default_Name Όνομα call_po_umolite] | Drop default_name] Όνομα ποιότητας Προσθήκη πεδίου Όνομα_Table | Drop square_name (περιορισμό | Cascade)] | Τοποθετήστε το όνομα (περιορισμό | Cascade)] | |

Λέξεις-κλειδιά

Προσωρινός.

Ανακοίνωσε έναν σταθερό ή προσωρινό (προσωρινό) πίνακα από την τοπική (τοπική) ή παγκόσμια (παγκόσμια) περιοχή δράσης. Οι τοπικοί προσωρινοί πίνακες διατίθενται μόνο από τη σύνοδο ότι τα δημιούργησαν και διαγράφονται αυτόματα όταν η σύνοδος που τα δημιουργήθηκε έχει ολοκληρωθεί. Παγκόσμια προσωρινά τραπέζια διατίθενται από όλες τις ενεργές συνεδρίες, αλλά διαγράφονται αυτόματα όταν τα δημιούργησε η σύνοδος. Μην καθορίζετε προσωρινά ονόματα πίνακα με το όνομα του σχήματος.

(Όνομα χαρακτηριστικών LongBits Type_Data [,])

Μια λίστα με την οποία μία ή περισσότερες στήλες παρατίθενται μέσω του κόμματος, τους τύπους δεδομένων τους και πρόσθετα χαρακτηριστικά, όπως οι τιμές των τιμών NULL (μη ικανοτήτων). Κάθε δήλωση πίνακα πρέπει να περιλαμβάνει τουλάχιστον μία στήλη για την οποία μπορείτε να ορίσετε:

namestolbitsa

Το όνομα της στήλης υποδεικνύεται. Θα πρέπει να είναι ένα αναγνωριστικό που επιτρέπεται από την άποψη των κανόνων ενός συγκεκριμένου SUBD. Το όνομα πρέπει να έχει νόημα!

Τύπος_Data

Δεσμεύει μια στήλη με όνομα όνομα_name. Ένας συγκεκριμένος τύπος δεδομένων. Για τους τύπους δεδομένων που σας επιτρέπουν να καθορίσετε το μήκος τους, υπάρχει ένα επιπλέον μήκος παραμέτρων, για παράδειγμα varchar (255). Ο τύπος δεδομένων πρέπει να επιτρεπτεί στο SUBD. Για μια πλήρη περιγραφή των επιτρεπόμενων τύπων δεδομένων και των επιλογών τους για συγκεκριμένους κατασκευαστές, επικοινωνήστε με το κεφάλαιο 2. Χαρακτηριστικά

Υπογράψει τα καθορισμένα χαρακτηριστικά περιορισμού με τη στήλη. Για μια στήλη που ονομάζεται, το όνομα_name, μπορείτε να καθορίσετε διάφορα χαρακτηριστικά. Δεν απαιτούνται κόμματα. Τα τυπικά χαρακτηριστικά ANSI περιλαμβάνουν τα ακόλουθα.

ΟΧΙ ΚΕΝΟ

Οι μηδενικές τιμές απαγορεύονται στη στήλη (ή επιτρέπονται εάν η μη μηδενική προσφορά παραλείπεται). Οποιεσδήποτε οδηγίες εισαγωγής και ενημέρωσης που θα προσπαθήσουν να τοποθετήσουν τη μηδενική τιμή στη στήλη με το μη μηδενικό χαρακτηριστικό, δεν θα πραγματοποιηθεί και θα εμφανιστεί η επαναφορά.

Προεπιλεγμένη έκφραση

Η στήλη θα χρησιμοποιήσει την τιμή της έκφρασης εάν η εντολή Insert ή Update δεν εισάγει καμία τιμή. Η έκφραση πρέπει να επιτραπεί για τον τύπο δεδομένων της στήλης. Για παράδειγμα, στη στήλη τύπου ακέραιου τύπου, δεν μπορούν να χρησιμοποιηθούν σύμβολα επιστολών. Μια έκφραση μπορεί να είναι μια συμβολοσειρά ή αριθμητική κυριολεκτική, αλλά μπορείτε επίσης να καθορίσετε μια λειτουργία προσαρμοσμένου ή συστήματος. Το πρότυπο SQL 2003 σάς επιτρέπει να χρησιμοποιήσετε τις ακόλουθες λειτουργίες συστήματος στην προεπιλεγμένη προσφορά: Null, χρήστη, turrenjser, session_user, systemjjser, turren_path, turble_d και εκείνους, trequarjime, τοπικός χρόνος, currentjimestamp, localtjmestamp, πίνακας ή συστοιχία.

Compate_name_name

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

Όνομα ορίου περιορισμού [αναφορά τύπου [περιορισμό]]

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

namestolbitsa

Η στήλη προσδιορίζεται με ειδικές επιλογές όπως η επιλογή της περιοχής δράσης (πεδίο εφαρμογής), η προεπιλεγμένη επιλογή τιμής (προεπιλογή), περιορίζοντας το επίπεδο στήλης ή την προσφορά Collate. Σε πολλές εφαρμογές, η πρόταση επιλογών περιορίζεται στη δημιουργία αντικειμένων (δακτυλογραφούμενης) πινάκων.

Όπως το όνομα_table

Ο νέος πίνακας δημιουργείται με τους ίδιους ορισμούς της στήλης όπως στο υπάρχον όνομα πίνακα_table.

Σύστημα Refis: δημιουργείται το σύστημα | που παράγεται από το χρήστη που προέρχεται]

Η στήλη αναγνωριστή αντικειμένου (αναγνωριστικό αντικειμένου, OID) σε πίνακες αντικειμένων (δακτυλογραφημένο) προσδιορίζεται. Το αναγνωριστικό αντικειμένου είναι απαραίτητο για έναν πίνακα που είναι η ρίζα στην ιεραρχία των πινάκων. Σύμφωνα με αυτήν την παράμετρο, η στήλη RIF μπορεί να δημιουργηθεί αυτόματα από το σύστημα αυτόματα (δημιουργείται σύστημα), καθορίζει χειροκίνητα τον χρήστη κατά την εισαγωγή της συμβολοσειράς (που δημιουργείται χρήστη) ή να δημιουργηθεί με βάση μια άλλη στήλη REF. Η παράμετρος απαιτεί να ενεργοποιήσετε τη στήλη_strol_name. Χαρακτηριστικό αναφοράς.

Τύπος ορίου περιορισμού [Όριο ονόματος] [, ...]

Ο πίνακας εκχωρείται ένας ή περισσότερος περιορισμοί. Αυτή η παράμετρος διαφέρει αισθητά από τους περιορισμούς του επιπέδου της στήλης, καθώς θεωρείται ότι οι περιορισμοί της στάθμης στήλης ισχύουν μόνο στη στήλη με την οποία συνδέονται. Στην περίπτωση περιορισμών του επιτραπέζιου επιπέδου, υπάρχει δυνατότητα σύνδεσης με περιορισμό αρκετών στηλών. Για παράδειγμα, στον πίνακα πωλήσεων ίσως χρειαστεί να δηλώσετε έναν μοναδικό περιορισμό στο πλήκτρο συμπλέκτη Store_ID, Order_ID και Order_Date. Αυτό μπορεί να γίνει μόνο με τον περιορισμό του επιτραπέζιου επιπέδου. Για λεπτομερή συζήτηση των περιορισμών, ανατρέξτε στο κεφάλαιο 2.

Του ονόματος [Definition_Table]

Ανακοινώνεται ότι ο πίνακας βασίζεται στον τελικό τύπο χρήστη. Σε αυτή την περίπτωση, ο πίνακας μπορεί να έχει μόνο μία στήλη για κάθε χαρακτηριστικό του δομημένου τύπου συν μια πρόσθετη στήλη που ορίζεται στην αρχή είναι η πρόταση. Ο τύπος δεδομένων RIP περιγράφεται λεπτομερώς στην ενότητα "Δημιουργία / τροποποίηση". Αυτή η πρόταση είναι ασυμβίβαστη με την παρόμοια ονόματα πρότασης. Οπου:

Κάτω από το Superteck [ορισμός / πίνακας]

Ένας άμεσος υπερεκτιμητής δηλώνεται για τον τρέχοντα πίνακα στο ίδιο σχήμα (εάν υπάρχει). Εάν επιθυμείτε, μπορείτε να ορίσετε ένα πλήρες ορισμό_table για το εξαιρετικό, να το συμπληρώσετε με στήλες, περιορισμούς και τα παρόμοια.

Σχετικά με τη δέσμευση (διατήρηση γραμμών διαγραφής γραμμών]

Κατά τη διαπραγμάτευση σειρές σειρές θέτει μια προσωρινή συμβολοσειρές δεδομένων πίνακα κατά την εκτέλεση της διδασκαλίας παραλαβής. Η δέσμευση της προσφοράς RO WS καταργεί όλες τις γραμμές δεδομένων στον προσωρινό πίνακα κατά την εκτέλεση της διδασκαλίας της δέσμευσης.

Προσθέστε το όνομα_stolbet type_data χαρακτηριστικά

Μια στήλη με κατάλληλο τύπο δεδομένων και χαρακτηριστικά προστίθεται στον πίνακα.

Eral_stolbet_name Ορίστε την προεπιλεγμένη τιμή

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

Alter Drop Default_StolB

Η προεπιλεγμένη τιμή έχει αφαιρεθεί εντελώς από την καθορισμένη στήλη.

Alter_stolbet Όνομα Προσθέστε το πεδίο Όνομα_Table

Η καθορισμένη στήλη προσθέτει μια περιοχή δράσης (πεδίο εφαρμογής). Το πεδίο είναι ένας σύνδεσμος με τον τύπο δεδομένων χρήστη.

Αλλάξτε το πεδίο πτώσης πτώσης

Το πεδίο αφαιρείται από τη συγκεκριμένη στήλη. Περιορίστε και οι προσφορές Cascade εξηγούνται στο τέλος αυτής της λίστας.

Drop column_stolbet όνομα

Η καθορισμένη στήλη αφαιρείται από τον πίνακα. Περιορίστε και οι προσφορές Cascade εξηγούνται στο τέλος αυτής της λίστας.

Προσθέστε το Tabular_Camination

Ο πίνακας προσθέτει περιορισμό με το καθορισμένο όνομα και τα χαρακτηριστικά.

Όνομα ορίου περιορισμού πτώσης

Το υπάρχον όριο αφαιρείται από τον πίνακα.

ΠΕΡΙΟΡΙΖΩ.

Όταν καθορίσετε αυτήν την πρόταση, η SUBD ακυρώνει την εντολή εάν τα αντικείμενα ανάλογα με αυτό το αντικείμενο βρίσκονται στη βάση δεδομένων.

Όταν καθορίσετε αυτήν την πρόταση, η Surbd αφαιρεί όλα τα άλλα αντικείμενα ανάλογα με αυτό το αντικείμενο.

Συνεχίζοντας το θέμα:
Λινάρι

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

Νέα άρθρα
/
Δημοφιλής