1615: Prepared statement needs to be re-prepared (la sentencia preparada debe volver a prepararse)
MySQL¿Qué significa?
Se rechazó la ejecución de una sentencia preparada del lado del servidor porque dejó de ser válida tras cambiar los metadatos de los que depende (definición de tabla/vista). La sentencia debe prepararse de nuevo.
¿Por qué ocurre?
DDL (ALTER TABLE) sobre la tabla subyacente después de preparar la sentencia, la tabla recreada, la caché de metadatos llena que expulsa la entrada, o límites de table_definition_cache/table_open_cache demasiado pequeños. Habitual en sistemas con mucho DDL y en algunos escenarios de ORM/pool.
Cómo solucionarlo
La mayoría de las bibliotecas cliente lo capturan y vuelven a preparar la sentencia automáticamente; en la aplicación, capture este error y reintente prepare + execute. Si se repite con frecuencia, aumente table_definition_cache y table_open_cache. Evite DDL innecesario durante el tráfico de la aplicación.
Más entradas de este motor
- 1236Got fatal error 1236 from master when reading data from binary log (error fatal 1236 del master al leer el binary log)
- 1129Host 'host' is blocked because of many connection errors (host bloqueado por demasiados errores de conexión)
- 1194Table 'name' is marked as crashed and should be repaired (tabla marcada como caída; debe repararse)
- 1553Cannot drop index needed in a foreign key constraint (no se puede eliminar un índice que necesita una restricción de foreign key)
- 3948Loading local data is disabled; this must be enabled on both the client and server sides (la carga de datos locales está deshabilitada; debe habilitarse en el cliente y en el servidor)
- 1075Incorrect table definition; there can be only one auto column and it must be defined as a key (definición de tabla incorrecta; solo puede haber una columna automática y debe definirse como clave)
- 1055Expression not in GROUP BY (only_full_group_by) (expresión que no está en GROUP BY)