SQL - Clé étrangère

Une clé étrangère est une clé utilisée pour lier deux tables ensemble. Ceci est parfois également appelé comme clé de référencement.

Une clé étrangère est une colonne ou une combinaison de colonnes dont les valeurs correspondent à une clé primaire dans une table différente.

The relationship between 2 tables matches the Primary Key in one of the tables with a Foreign Key in the second table.

Si une table a une clé primaire définie sur un ou plusieurs champs, vous ne pouvez pas avoir deux enregistrements ayant la même valeur que ce ou ces champs.

Exemple

Considérez la structure des deux tableaux suivants.

CUSTOMERS table

CREATE TABLE CUSTOMERS(
   ID   INT              NOT NULL,
   NAME VARCHAR (20)     NOT NULL,
   AGE  INT              NOT NULL,
   ADDRESS  CHAR (25) ,
   SALARY   DECIMAL (18, 2),       
   PRIMARY KEY (ID)
);

ORDERS table

CREATE TABLE ORDERS (
   ID          INT        NOT NULL,
   DATE        DATETIME, 
   CUSTOMER_ID INT references CUSTOMERS(ID),
   AMOUNT     double,
   PRIMARY KEY (ID)
);

Si la table ORDERS a déjà été créée et que la clé étrangère n'a pas encore été définie, utilisez la syntaxe pour spécifier une clé étrangère en modifiant une table.

ALTER TABLE ORDERS 
   ADD FOREIGN KEY (Customer_ID) REFERENCES CUSTOMERS (ID);

DROP a FOREIGN KEY Contrainte

Pour supprimer une contrainte FOREIGN KEY, utilisez la syntaxe SQL suivante.

ALTER TABLE ORDERS
   DROP FOREIGN KEY;
sql-rdbms-concepts.htm