SQL FOREIGN KEY Constraint
SQL FOREIGN KEY Constraint
FOREIGN KEY dans un des points de table à une autre table PRIMARY KEY.
Prenons un exemple pour expliquer la clé étrangère. Considérons les deux tableaux suivants:
"Personnes" tableau:
P_Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Hansen | Ola | Timoteivn 10 | Sandnes |
2 | Svendson | Tove | Borgvn 23 | Sandnes |
3 | Pettersen | Kari | Storgt 20 | Stavanger |
"Commandes" tableau:
O_Id | OrderNo | P_Id |
---|---|---|
1 | 77895 | 3 |
2 | 44678 | 3 |
3 | 22456 | 2 |
4 | 24562 | 1 |
S'il vous plaît noter, table colonne "Commandes" "p_id" point de colonne "Personnes" "p_id".
"Personnes" colonne de la table "p_id" est le "Personnes" tableau PRIMARY KEY.
"Commandes" colonne de la table "p_id" est le "Commandes" table de clé étrangère.
contrainte FOREIGN KEY est utilisé pour prévenir les dommages à la connexion entre le comportement de la table.
contrainte FOREIGN KEY empêche également des données illégales dans une colonne de clé étrangère, il doit être l'un parce qu'il pointe sur la table.
SQL Contrainte de clé étrangère lorsque CREATE TABLE
Le SQL suivante lorsque la "Commandes" table est créée pour créer une contrainte FOREIGN KEY sur la colonne "p_id":
MySQL:
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
)
SQL Server / Oracle / MS Access:
(
O_Id int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
P_Id int FOREIGN KEY REFERENCES Persons(P_Id)
)
Pour nommer contrainte FOREIGN KEY, et définir une pluralité de contrainte colonne FOREIGN KEY, utilisez la syntaxe SQL suivante:
MySQL / SQL Server / Oracle / MS Accès:
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
)
SQL ÉTRANGÈRES contrainte KEY ALTER TABLE lorsque
Lorsque le "Commandes" table a été créée pour les colonnes créer la contrainte FOREIGN KEY "p_id", s'il vous plaît utiliser l'instruction SQL suivante:
MySQL / SQL Server / Oracle / MS Accès:
ADD FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
Pour nommer contrainte FOREIGN KEY, et définir une pluralité de contrainte colonne FOREIGN KEY, utilisez la syntaxe SQL suivante:
MySQL / SQL Server / Oracle / MS Accès:
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
Annuler contrainte FOREIGN KEY
Pour supprimer une contrainte FOREIGN KEY, utilisez l'instruction SQL suivante:
MySQL:
DROP FOREIGN KEY fk_PerOrders
SQL Server / Oracle / MS Access:
DROP CONSTRAINT fk_PerOrders