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!