Διατάγματα SQL FOREIGN KEY

Διατάγματα 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