Latest web development tutorials

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:

CREATE TABLE Orders
(
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:

CREATE TABLE Orders
(
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:

CREATE TABLE Orders
(
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:

ALTER TABLE Orders
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:

ALTER TABLE Orders
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:

ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders

SQL Server / Oracle / MS Access:

ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders