phpMyAdmin
 sql >> Base de données >  >> Database Tools >> phpMyAdmin

Configuration des relations de table, que font Cascade, Set Null et Restrict ?

CASCADE propagera le changement lorsque le parent changera. (Si vous supprimez une ligne, les lignes des tableaux contraints qui font référence à cette ligne seront également supprimées, etc.)

SET NULL définit la valeur de la colonne sur NULL lorsqu'une ligne parent disparaît.

RESTRICT provoque l'échec de la tentative de suppression d'une ligne parent.

EDIT :Vous n'avez pas posé de questions à leur sujet, mais le standard SQL définit deux autres actions :SET DEFAULT et NO ACTION . Dans MySQL, NO ACTION est équivalent à RESTRICT . (Dans certains SGBD, NO ACTION est une vérification différée, mais dans MySQL toutes les vérifications sont immédiates.) L'analyseur MySQL accepte SET DEFAULT , mais les moteurs InnoDB et NDB rejettent ces instructions, donc SET DEFAULT ne peut pas être utilisé pour une ON UPDATE ou ON DELETE contrainte.

Notez également que les actions de clé étrangère en cascade n'activent pas les déclencheurs dans MySQL.