1615: Prepared statement needs to be re-prepared (l'instruction préparée doit être préparée à nouveau)
MySQLQue signifie cette erreur ?
L'exécution d'une instruction préparée côté serveur a été refusée car elle est devenue invalide après la modification des métadonnées dont elle dépend (définition de table/vue). L'instruction doit être préparée à nouveau.
Cause
DDL (ALTER TABLE) sur la table sous-jacente après la préparation de l'instruction, table recréée, cache de métadonnées plein qui évince l'entrée, ou limites table_definition_cache/table_open_cache trop petites. Fréquent sur les systèmes avec beaucoup de DDL et dans certains scénarios ORM/pool.
Comment la corriger
La plupart des bibliothèques clientes interceptent l'erreur et préparent de nouveau l'instruction automatiquement ; dans l'application, interceptez cette erreur et relancez prepare + execute. Si elle se répète souvent, augmentez table_definition_cache et table_open_cache. Évitez le DDL inutile pendant le trafic applicatif.
Autres entrées pour ce moteur
- 1236Got fatal error 1236 from master when reading data from binary log (erreur fatale 1236 reçue du master lors de la lecture du binary log)
- 1129Host 'host' is blocked because of many connection errors (l'hôte 'host' est bloqué en raison de nombreuses erreurs de connexion)
- 1194Table 'name' is marked as crashed and should be repaired (la table 'name' est marquée comme endommagée et doit être réparée)
- 1553Cannot drop index needed in a foreign key constraint (impossible de supprimer un index requis par une contrainte de clé étrangère)
- 3948Loading local data is disabled; this must be enabled on both the client and server sides (le chargement de données locales est désactivé ; il doit être activé côté client et côté serveur)
- 1075Incorrect table definition; there can be only one auto column and it must be defined as a key (définition de table incorrecte : une seule colonne auto, qui doit être définie comme clé)
- 1055Expression not in GROUP BY (only_full_group_by) (expression absente du GROUP BY)