Mysql
 sql >> Base de données >  >> RDS >> Mysql

Dans MySQL, puis-je différer les vérifications d'intégrité référentielle jusqu'à la validation

On dirait que ma réponse est ici ...

Comme MySQL en général, dans une instruction SQL qui insère, supprime ou met à jour de nombreuses lignes, InnoDB vérifie les contraintes UNIQUE et FOREIGN KEY ligne par ligne. Lors de l'exécution de vérifications de clés étrangères, InnoDB définit des verrous partagés au niveau des lignes sur les enregistrements enfants ou parents qu'il doit examiner. InnoDB vérifie immédiatement les contraintes de clé étrangère ; la vérification n'est pas reportée à la validation de la transaction. Selon la norme SQL, le comportement par défaut doit être la vérification différée. Autrement dit, les contraintes ne sont vérifiées qu'après le traitement de l'intégralité de l'instruction SQL. Jusqu'à ce qu'InnoDB implémente la vérification différée des contraintes, certaines choses seront impossibles, comme la suppression d'un enregistrement qui se réfère à lui-même à l'aide d'une clé étrangère.

Retour à la planche à dessin.