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

Pourquoi deux instructions de suppression + insertion simultanées se bloquent-elles sur une table vide ?

Le "vide" est verrouillé en prévision du fait que quelqu'un essaie d'insérer la ligne que j'essaie de supprimer.

Ou, pour le voir d'une autre manière... Il serait trop lent de traiter parfaitement chaque cas étrange. Ainsi, InnoDB choisit de gérer efficacement la plupart des cas et de s'attaquer aux rares cas excentriques.

Conclusion :vivez avec. Vous allez obtenir des impasses. Vous ne pourrez pas forcément les comprendre. Mais votre code doit récupérer - en revenant simplement en arrière et en revenant au BEGIN .