Maison > base de données > tutoriel mysql > Quel est le comportement par défaut ON DELETE des contraintes de clé étrangère dans MySQL ?

Quel est le comportement par défaut ON DELETE des contraintes de clé étrangère dans MySQL ?

Susan Sarandon
Libérer: 2024-11-04 17:30:02
original
812 Les gens l'ont consulté

What is the Default ON DELETE Behavior of Foreign Key Constraints in MySQL?

Contraintes de clé étrangère MySQL : comportement par défaut ON DELETE expliqué

Lorsque vous travaillez avec des bases de données MySQL, la gestion des contraintes de clé étrangère est essentielle pour garantir l'intégrité des données . L'un des aspects fondamentaux des relations de clé étrangère est le comportement ON DELETE, qui détermine ce qui arrive aux lignes enfants lorsque la ligne parent correspondante est supprimée.

Comportement ON DELETE par défaut : expliqué

Par défaut, MySQL attribue le comportement ON DELETE comme NO ACTION, ce qui signifie que la suppression de la ligne parent est interdite si elle rompait toute relation de clé étrangère. En d'autres termes, les lignes enfants doivent continuer à référencer une ligne parent valide.

Autres options ON DELETE

Outre le comportement par défaut, il existe quatre autres options ON DELETE disponible :

  • SET NULL : Annule la colonne de clé étrangère dans la table enfant lorsque la ligne parent est supprimée. Ceci n'est autorisé que si la colonne de clé étrangère est nullable.
  • RESTRICT : Cette option est synonyme de NO ACTION, interdisant la suppression de la ligne parent lorsqu'elle affecterait les lignes enfants.
  • CASCADE : Supprime automatiquement toutes les lignes enfants qui font référence à la ligne parent supprimée.
  • SET DEFAULT : Cette option n'est pas prise en charge dans MySQL et ne devrait pas être utilisé.

Résumé

Pour résumer, le comportement par défaut ON DELETE dans MySQL est NO ACTION/RESTRICT, ce qui empêche la suppression des lignes parentes qui invalider toutes les contraintes de clé étrangère. D'autres options incluent SET NULL, CASCADE (pour supprimer automatiquement les lignes enfants) et SET DEFAULT (non pris en charge dans MySQL).

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal