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.
Haz esto primero
Hay que agrandar la columna de la base de datos. Pídeselo a tu hosting o a un desarrollador.
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
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;TEXTtopa en 65 KB y un inventario grande lo puede pasar. - 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
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
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 FixerPara este tipo de error, el Script Optimizer detecta los patrones de consulta que causan esto.