Mot-clé SQL FOREIGN KEY
CLÉ ÉTRANGÈRE
La FOREIGN KEY
contrainte est une clé utilisée pour lier deux tables entre elles.
Une CLÉ ÉTRANGÈRE est un champ (ou une collection de champs) dans une table qui fait référence à la CLÉ PRIMAIRE dans une autre table.
CLÉ ÉTRANGÈRE SQL sur CREATE TABLE
Le SQL suivant crée une FOREIGN KEY sur la colonne "PersonID" lors de la création de la table "Orders" :
MySQL :
CREATE TABLE Orders
(
OrderID int NOT NULL,
OrderNumber int NOT NULL,
PersonID int,
PRIMARY KEY (OrderID),
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
);
SQL Server/Oracle/MS Access :
CREATE TABLE Orders
(
OrderID int NOT NULL PRIMARY KEY,
OrderNumber int NOT NULL,
PersonID int FOREIGN KEY REFERENCES Persons(PersonID)
);
Pour autoriser la dénomination d'une contrainte FOREIGN KEY et pour définir une contrainte FOREIGN KEY sur plusieurs colonnes, utilisez la syntaxe SQL suivante :
MySQL/SQL Server/Oracle/MS Access :
CREATE TABLE Orders
(
OrderID int NOT NULL,
OrderNumber int NOT NULL,
PersonID int,
PRIMARY KEY (OrderID),
CONSTRAINT FK_PersonOrder FOREIGN KEY (PersonID)
REFERENCES Persons(PersonID)
);
CLÉ ÉTRANGÈRE SQL sur ALTER TABLE
Pour créer une contrainte FOREIGN KEY sur la colonne "PersonID" lorsque la table "Orders" est déjà créée, utilisez le SQL suivant :
MySQL/SQL Server/Oracle/MS Access :
ALTER TABLE Orders
ADD FOREIGN KEY (PersonID)
REFERENCES Persons(PersonID);
Pour autoriser la dénomination d'une contrainte FOREIGN KEY et pour définir une contrainte FOREIGN KEY sur plusieurs colonnes, utilisez la syntaxe SQL suivante :
MySQL/SQL Server/Oracle/MS Access :
ALTER TABLE Orders
ADD CONSTRAINT FK_PersonOrder
FOREIGN KEY (PersonID)
REFERENCES Persons(PersonID);
Supprimer une contrainte FOREIGN KEY
Pour supprimer une contrainte FOREIGN KEY, utilisez le SQL suivant :
MySQL :
ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;
SQL Server/Oracle/MS Access :
ALTER TABLE Orders
DROP CONSTRAINT FK_PersonOrder;