Maison > base de données > tutoriel mysql > le corps du texte

Les contrôles d'intégrité référentielle peuvent-ils être différés jusqu'à la validation dans MySQL ?

Mary-Kate Olsen
Libérer: 2024-11-09 20:28:02
original
285 Les gens l'ont consulté

Can Referential Integrity Checks Be Deferred Until Commit in MySQL?

Les vérifications d'intégrité référentielle peuvent-elles être différées jusqu'à la validation dans MySQL ?

Dans MySQL, les vérifications d'intégrité référentielle sont effectuées immédiatement, et non différées jusqu'à la validation de la transaction. . Cette limitation, comme souligné dans la documentation MySQL, empêche certaines opérations, comme la suppression d'un enregistrement qui fait référence à lui-même à l'aide d'une clé étrangère.

La question du report des contrôles d'intégrité référentielle a déjà été soulevée, comme le montre le question PoEAA référencée. Le problème survient lors de l'insertion de données dans plusieurs tables liées au sein d'une seule transaction. Des erreurs de contraintes peuvent survenir lors de la tentative d'insertion dans des tables de jointure en raison de la vérification immédiate de l'intégrité référentielle.

Selon la norme SQL, la vérification des contraintes doit être différée. Cependant, InnoDB, le moteur de stockage par défaut de MySQL, l'applique actuellement ligne par ligne lors d'une instruction SQL. Cela signifie qu'il définit des verrous partagés au niveau des lignes sur les enregistrements référencés ou parents, empêchant ainsi la transaction de se poursuivre.

Par conséquent, dans MySQL avec InnoDB comme moteur de stockage, différer les vérifications d'intégrité référentielle jusqu'à la validation n'est actuellement pas possible. Cette limitation pose des défis pour certaines opérations de base de données et nécessite une attention particulière lors de la conception du schéma de base de données.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!