1213: Deadlock found when trying to get lock; try restarting transaction (interblocage lors de l'acquisition du verrou ; relancez la transaction)
MySQLQue signifie cette erreur ?
InnoDB a détecté un interblocage dans lequel deux transactions ou plus attendent mutuellement leurs verrous, et a rompu le cycle en annulant l'une des transactions.
Cause
Verrous de ligne acquis dans des ordres différents, mises à jour croisées des mêmes lignes, larges plages de lignes verrouillées (gap locks) faute d'index, ou conflits lors des vérifications de clés étrangères.
Comment la corriger
Affichez les détails du dernier interblocage : SHOW ENGINE INNODB STATUS (section LATEST DETECTED DEADLOCK). Accédez aux lignes/tables dans le même ordre dans toutes les transactions et gardez les transactions courtes. Réduisez la plage verrouillée en ajoutant des index appropriés. Interceptez la transaction annulée dans l'application et relancez-la (logique de relance).
Autres entrées pour ce moteur
- 1045Access denied for user (using password: YES/NO) (accès refusé pour l'utilisateur)
- 1062Duplicate entry for key (entrée en double pour la clé)
- 1205Lock wait timeout exceeded; try restarting transaction (délai d'attente de verrou dépassé ; relancez la transaction)
- 1040Too many connections (trop de connexions)
- 1064You have an error in your SQL syntax (erreur de syntaxe SQL)
- 1146Table doesn't exist (la table n'existe pas)