THE ORB
Arrancando el studio

Datos demasiado largos para la columna '<nombre>'

Algo era demasiado grande para donde se estaba guardando, así que no se guardó. Los inventarios son el caso típico.

groupsSe pierden datos en silenciocodeNecesita un desarrollador

Haz esto primero

Hay que agrandar la columna de la base de datos. Pídeselo a tu hosting o a un desarrollador.

bug_reportMejor pega tu consola entera

Qué significa

El valor es más grande de lo que la columna puede guardar y MySQL se negó a recortarlo en silencio. La escritura no ocurrió, así que lo que se estaba guardando se perdió.

Qué lo provoca

Ordenado por la frecuencia con la que es la respuesta.

  1. 1

    JSON guardado en una columna demasiado chica

    Los inventarios, los metadatos y los datos de trabajos crecen. VARCHAR(255) guarda un inventario de principiante y no uno de verdad; TEXT topa en 65 KB y un inventario grande lo puede pasar.

  2. 2

    Un nombre de jugador con caracteres multibyte

    Un nombre de 20 caracteres son más de 60 bytes en utf8mb4. Un VARCHAR(20) mide caracteres, pero un índice sobre él mide bytes.

  3. 3

    Acumular en vez de reemplazar

    Una columna de registro o de historial a la que se le añade en vez de sobreescribirla, y que crece en cada guardado.

  4. 4

    El esquema nunca se migró

    El recurso trajo un .sql actualizado y sólo se actualizó el código.

Cómo saber cuál es el tuyo

Mirá la columna, y después el valor:

SHOW COLUMNS FROM users LIKE 'inventory';
SELECT LENGTH(inventory) FROM users ORDER BY LENGTH(inventory) DESC LIMIT 5;

Si el valor más largo que ya existe está cerca del límite, esto le va a pasar a todos, no sólo al jugador que lo reportó.

Dónde mirar

La definición de la columna, y lo que el recurso escribe dentro.

Cómo arreglarlo

Dale espacio a la columna. LONGTEXT no cuesta nada hasta que se usa:

ALTER TABLE users MODIFY inventory LONGTEXT;

Para un registro que de verdad no tiene tope, movelo a su propia tabla con una fila por entrada en vez de un blob que crece.

¿Sigues atascado en tu propio código?

Esta página es lo que suele significar este error. Pega tu consola en Server Fixer y ordenará todo lo que haya en ella y te dirá qué hacer primero; y si prefieres no tocarlo, ORBIE puede reparar el script y devolverte el recurso listo para soltar.

bug_reportAbrir el Server Fixer

Para este tipo de error, el Script Optimizer detecta los patrones de consulta que causan esto.

Errores que viajan con este