Trigger (gâchette): garantie de l'intégrité référentielle
Les clés étrangères permettent de définir les colonnes d'une table garantissant la validité d'une autre table. Ainsi, il existe des éléments (appelés triggers, ou en français gâchettes ou déclencheurs) permettant de garantir l'ensemble de ces contraintes que l'on désigne par le terme d'intégrité référentielle, c'est-à-dire notamment de s'assurer qu'un tuple utilisé à partir d'une autre table existe réellement.
Ces triggers sont ON DELETE et ON UPDATE:
ON DELETE est suivi d'arguments entre accolades permettant de spécifier l'action à réaliser en cas d'effacement d'une ligne de la table faisant partie de la clé étrangère:
CASCADE indique la suppression en cascade des lignes de la table étrangère dont les clés étrangères correspondent aux clés primaires des lignes effacées
RESTRICT indique une erreur en cas d'effacement d'une valeur correspondant à la clé
SET NULL place la valeur NULL dans la ligne de la table étrangère en cas d'effacement d'une valeur correspondant à la clé
SET DEFAULT place la valeur par défaut (qui suit ce paramètre) dans la ligne de la table étrangère en cas d'effacement d'une valeur correspondant à la clé
ON UPDATE est suivi d'arguments entre accolades permettant de spécifier l'action à réaliser en cas de modification d'une ligne de la table faisant partie de la clé étrangère:
CASCADE indique la modification en cascade des lignes de la table étrangères dont les clé primaires correspondent aux clés étrangères des lignes modifiées
RESTRICT indique une erreur en cas de modification d'une valeur correspondant à la clé
SET NULL place la valeur NULL dans la ligne de la table étrangère en cas de modification d'une valeur correspondant à la clé
SET DEFAULT place la valeur par défaut (qui suit ce paramètre) dans la ligne de la table étrangère en cas de modification d'une valeur correspondant à la clé