Maison  >  Article  >  base de données  >  Les contraintes de clé étrangère peuvent-elles être différées jusqu'à la validation dans MySQL ?

Les contraintes de clé étrangère peuvent-elles être différées jusqu'à la validation dans MySQL ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-09 13:49:02320parcourir

Can Foreign Key Constraints Be Deferred Until Commit in MySQL?

Question : Les contraintes de clé étrangère peuvent-elles être différées jusqu'à la validation dans MySQL ?

Cette question se pose lors de l'exécution d'insertions groupées dans MySQL, en particulier lors d'une tentative pour insérer des données dans des tables liées par des clés étrangères. Malgré l'exécution d'insertions au sein d'une transaction, des erreurs de contrainte peuvent survenir.

Réponse :

Malheureusement, selon la documentation MySQL, les contrôles d'intégrité référentielle dans InnoDB sont effectués immédiatement à chaque ligne. insertion, plutôt que différée jusqu'à la validation de la transaction. Ce comportement s'écarte de la norme SQL, qui spécifie une vérification de contrainte différée.

Les vérifications immédiates imposent des limitations, en particulier lors de la gestion de tables auto-référentielles ou de scénarios dans lesquels les références de clés étrangères doivent être mises à jour séquentiellement. Jusqu'à ce que MySQL implémente la vérification différée des contraintes, de telles opérations peuvent nécessiter des approches alternatives.

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!

Déclaration:
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