Actions clés externes
Pour une intégrité des données supplémentaire, des options facultatives peuvent être spécifiées pour assurer la cohérence des données entre les tables parent et enfant selon les règles spécifiées :
-
La phrase
ON UPDATE
spécifie ce qui arrive aux entrées d’une sous table lorsque la valeur de la clé primaire/unique d’une ligne de la table parent est modifiée. -
La clause
ON DELETE
spécifie ce qui arrive aux entrées de la sous table lorsque la ligne correspondante dans la table principale est supprimée.
Pour garantir l’intégrité référentielle d’une clé étrangère lorsque la valeur d’une clé primaire ou unique connexe est modifiée ou supprimée, les actions suivantes peuvent être effectuées :
-
NO ACTION
(par défaut) — aucune action ne sera effectuée ; -
CASCADE
— Lorsqu’une valeur de clé primaire est modifiée ou supprimée, les mêmes actions seront effectuées sur la valeur de la clé étrangère. Lors de la suppression d’une ligne dans la table principale, tous les enregistrements ayant les mêmes valeurs de clé étrangère que la valeur de clé primaire (unique) de la ligne de la table principale supprimée doivent être supprimés dans la sous-table. Lors de la mise à jour d’un enregistrement de la table principale dans une table secondaire, toutes les valeurs de la clé étrangère ayant les mêmes valeurs que la valeur de la clé primaire (unique) de la ligne de la table principale qui est modifiée doivent être modifiées ; -
SET DEFAULT
— les valeurs des clés étrangères de toutes les lignes correspondantes dans la sous-table sont définies à la valeur par défaut spécifiée dans la clause DEFAULT pour cette colonne ; -
SET NULL
— les valeurs des clés étrangères de toutes les lignes correspondantes dans la sous table sont mises à NULL.
CONSTRAINT FK_ORDERS_CUST
FOREIGN KEY (CUSTOMER) REFERENCES CUSTOMERS (ID)
ON UPDATE CASCADE ON DELETE SET NULL