DBAtlas · Atlas d'exploitation des bases de données

1615: Prepared statement needs to be re-prepared (l'instruction préparée doit être préparée à nouveau)

MySQL

Que 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.

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur