4D v16

définition_clé_étrangère

Accueil

 
4D v16
définition_clé_étrangère

définition_clé_étrangère  


 

 

Commande définition_clé_étrangè 

CONSTRAINT nom_sql
FOREIGN KEY (ref_colonne, ... , ref_colonne)
REFERENCES nom_sql [(ref_colonne, ... , ref_colonne)]
[ON DELETE {RESTRICT |CASCADE}]
[ON UPDATE {RESTRICT |CASCADE}]

Une définition de clé étrangère (définition_clé_étrangère) permet de faire correspondre les champs clés primaires (ref_colonne) définis dans une autre table afin de préserver l'intégrité des données. La contrainte FOREIGN KEY permet de passer la ou les référence(s) des colonne(s) (ref_colonne) à définir comme clés étrangères (correspondant aux clés primaires d'une autre table).

La clause CONSTRAINT nom_sql permet de nommer la contrainte FOREIGN KEY.

La clause REFERENCES permet de spécifier les champs clés primaires source correspondants dans l'autre table (désignée par nom_sql). Vous pouvez omettre la liste des champs (arguments ref_colonne) si la table nom_sql définie dans la clause REFERENCES a une clé primaire qui doit être utilisée comme correspondance pour la contrainte clé étrangère.

La clause facultative ON DELETE CASCADE spécifie que lorsqu'un enregistrement (row) est supprimé de la table parente (contenant les champs clés primaires), les enregistrements associés dans la table enfant (contenant les champs clés étrangers) doivent également être supprimés. Passer la clause facultative ON DELETE RESTRICT empêche la suppression des données d'une table si d'autres tables les référencent.

La clause facultative ON UPDATE CASCADE spécifie qu'à chaque fois qu'un enregistrement (row) est mis à jour dans la table parente (contenant les champs clés primaires), il est également mis à jour dans tous les enregistrements associés dans la table enfant (contenant les champs clés étrangers). Passer la clause facultative ON UPDATE RESTRICT empêche la mise à jour des données d'une table si d'autres tables les référencent.
A noter que si les deux clauses ON DELETE et ON UPDATE sont passées, elles doivent être du même type (c'est-à-dire ON DELETE CASCADE et ON UPDATE CASCADE, ou ON DELETE RESTRICT et ON UPDATE RESTRICT).
Si ni la clause ON DELETE ni ON UPDATE n'est passée, CASCADE est utilisée comme règle par défaut.

Exemple  

Cet exemple crée la table COMMANDES puis définit la colonne SID_Clients comme clé étrangère, associée à la colonne SID de la table CLIENTS.

CREATE TABLE COMMANDES
(ID_Commande INT32,
SID_Clients INT32,
LeTotal NUMERIC,
PRIMARY KEY (ID_Commande),
CONSTRAINT fk_1 FOREIGN KEY (SID_Clients) REFERENCES CLIENTS(SID));



Voir aussi  

ALTER TABLE
définition_clé_primaire
ref_colonne

 
PROPRIÉTÉS 

Produit : 4D
Thème : Règles de syntaxe
Nom intl. : foreign_key_definition

 
HISTORIQUE 

 
UTILISATION DE L'ARTICLE

4D - Référence SQL ( 4D v16)