Maison > base de données > tutoriel mysql > Quel est le comportement par défaut de MySQL lors de la suppression ?

Quel est le comportement par défaut de MySQL lors de la suppression ?

DDD
Libérer: 2024-11-04 12:00:05
original
564 Les gens l'ont consulté

What is MySQL's Default ON DELETE Behavior?

Comportement ON DELETE par défaut de MySQL

Lorsque vous travaillez avec des bases de données, comprendre le comportement des contraintes de clé étrangère est crucial pour maintenir l'intégrité des données. MySQL propose diverses options pour spécifier l'action à entreprendre lorsqu'une ligne d'une table parent est supprimée, dont l'une est le comportement par défaut.

Comportement par défaut

MySQL Le comportement par défaut de ON DELETE consiste à appliquer l'intégrité référentielle, empêchant toute modification de la table parent qui romprait la relation avec les tables enfants. Ceci est réalisé grâce aux options AUCUNE ACTION ou RESTRICT. Ces deux options interdisent essentiellement la suppression si des lignes dépendantes existent dans les tables enfants.

Autres options

MySQL propose des options supplémentaires pour gérer les événements ON DELETE :

  • SET NULL : Supprime la ligne parent et définit la clé étrangère de la table enfant sur NULL, si elle n'est pas déclarée NOT NULL.
  • CASCADE : Supprime la ligne parent et supprime automatiquement les lignes dépendantes dans les tables enfants.
  • SET DEFAULT : Cette option est rejetée par InnoDB et ne peut pas être utilisée.

Par conséquent, pour répondre à la question :

  • Oui, la prémisse est correcte. Le comportement ON DELETE par défaut de MySQL est NO ACTION (ou RESTRICT), empêchant les modifications de base de données qui violent les contraintes de clé étrangère.
  • NO ACTION et RESTRICT sont synonymes et s'appliquent lorsqu'aucune clause ON DELETE n'est spécifiée.
  • SET NULL permet la suppression des lignes parentes et définit les clés étrangères sur NULL.
  • CASCADE supprime les lignes parentes et dépendantes.
  • SET DEFAULT ne doit pas être utilisé car il est rejeté par InnoDB.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal