Διατάγματα SQL FOREIGN KEY
- Προηγούμενη Σελίδα Πρωτεύουσα Κλειδί SQL
- Επόμενη Σελίδα SQL Check
Διατάγματα SQL FOREIGN KEY
Η εξωτερική κλειδί μιας τράπεζας δεδομένων δείχνει στη κύρια κλειδί μιας άλλης τράπεζας δεδομένων.
Ας εξηγήσουμε την εξωτερική κλειδί με ένα παράδειγμα. Δείτε τις δύο παρακάτω τράπεζες:
Τράπεζα δεδομένων "Persons":
Id_P | LastName | FirstName | Διεύθυνση | Πόλη |
---|---|---|---|---|
1 | Adams | John | Oxford Street | London |
2 | Bush | George | Fifth Avenue | New York |
3 | Carter | Thomas | Changan Street | Πεκίνο |
Τράπεζα δεδομένων "Orders":
Id_O | OrderNo | Id_P |
---|---|---|
1 | 77895 | 3 |
2 | 44678 | 3 |
3 | 22456 | 1 |
4 | 24562 | 1 |
Παρακαλώ σημειώστε ότι η στήλη "Id_P" στη "Orders" δείχνει στη στήλη "Id_P" της τράπεζας δεδομένων "Persons".
Η στήλη "Id_P" στη τράπεζα δεδομένων "Persons" είναι κύρια κλειδί της τράπεζας δεδομένων "Persons".
Η στήλη "Id_P" στη τράπεζα δεδομένων "Orders" είναι εξωτερική κλειδί της τράπεζας δεδομένων "Orders".
Η εξωτερική κλειδί περιορισμός χρησιμοποιείται για την πρόληψη καταστροφικών ενεργειών που διαταράσσουν τις συνδέσεις μεταξύ των τραπεζών δεδομένων.
Η εξωτερική κλειδί περιορισμός μπορεί επίσης να αποτρέψει την εισαγωγή μη νόμιμων δεδομένων στη στήλη εξωτερικής κλειδιάς, καθώς πρέπει να είναι ένα από τα δεδομένα της τράπεζας δεδομένων που αναφέρεται.
Εξωτερική κλειδί περιορισμός στο CREATE TABLE
Η παρακάτω SQL δημιουργεί εξωτερική κλειδί για τη στήλη "Id_P" στη τράπεζα δεδομένων "Orders":
MySQL:
Δημιουργία Τραπεζάς Δεδομένων Orders ( Id_O int NOT NULL, OrderNo int NOT NULL, Id_P int, Πρωτεύουσα Κλειδί (Id_O), Εξωτερική κλειδί (Id_P) αναφέρεται στο (Id_P) των Persons )
SQL Server / Oracle / MS Access:
Δημιουργία Τραπεζάς Δεδομένων Orders ( Id_O int NOT NULL Πρωτεύουσα Κλειδί, OrderNo int NOT NULL, Id_P int Εξωτερική Κλειδί Αναφορές Persons(Id_P) )
Αν χρειάζεται να ονομάσετε την εξωτερική κλειδί εξαίρεση και να ορίσετε εξωτερικές κλειδιά εξαιρέσεις για πολλαπλές στήλες, χρησιμοποιήστε την παρακάτω γλωσσά� της SQL:
MySQL / SQL Server / Oracle / MS Access:
Δημιουργία Τραπεζάς Δεδομένων Orders ( Id_O int NOT NULL, OrderNo int NOT NULL, Id_P int, Πρωτεύουσα Κλειδί (Id_O), Διαταράξη fk_PerOrders Εξωτερική Κλειδί (Id_P) Αναφορές Persons(Id_P) )
Εξωτερική Κλειδί SQL Εξαίρεση στο ALTER TABLE
Αν δημιουργήσετε μια εξωτερική κλειδί εξαίρεση για τη στήλη "Id_P" στην τράπεζα δεδομένων "Orders" που ήδη υπάρχει, χρησιμοποιήστε τον παρακάτω SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders Προσθήκη Εξωτερικής Κλειδιάς (Id_P) Αναφορές Persons(Id_P)
Αν χρειάζεται να ονομάσετε την εξωτερική κλειδί εξαίρεση και να ορίσετε εξωτερικές κλειδιά εξαιρέσεις για πολλαπλές στήλες, χρησιμοποιήστε την παρακάτω γλωσσά� της SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders Προσθήκη Διαταραχής fk_PerOrders Εξωτερική Κλειδί (Id_P) Αναφορές Persons(Id_P)
Ανακαλέστε την εξωτερική κλειδί εξαίρεση
Για να ανακαλέσετε την εξωτερική κλειδί εξαίρεση, χρησιμοποιήστε τον παρακάτω SQL:
MySQL:
ALTER TABLE Orders Αφαίρεση Εξωτερικής Κλειδιάς fk_PerOrders
SQL Server / Oracle / MS Access:
ALTER TABLE Orders Αφαίρεση Διαταραχής fk_PerOrders
- Προηγούμενη Σελίδα Πρωτεύουσα Κλειδί SQL
- Επόμενη Σελίδα SQL Check