Données trop longues pour la colonne '<nom>'
Quelque chose était trop gros pour l'endroit où il était enregistré, donc il ne l'a pas été. Les inventaires sont le cas classique.
Faites d'abord ceci
Il faut agrandir la colonne de la base de données. Demandez-le à votre hébergeur ou à un développeur.
Ce que ça veut dire
La valeur est plus grande que ce que la colonne peut contenir et MySQL a refusé de la tronquer en silence. L'écriture n'a pas eu lieu : ce qui était en train d'être enregistré est perdu.
Ce qui la provoque
Classé par fréquence : la cause la plus probable en premier.
- 1
Du JSON dans une colonne trop petite
Les inventaires, les métadonnées et les données de métier grossissent.
VARCHAR(255)tient un inventaire de départ, pas un vrai ;TEXTplafonne à 65 Ko et un gros inventaire peut le dépasser. - 2
Un nom de joueur avec des caractères multi-octets
Un nom de 20 caractères fait plus de 60 octets en utf8mb4. Un
VARCHAR(20)compte des caractères, mais un index dessus compte des octets. - 3
Accumuler au lieu de remplacer
Une colonne de journal ou d'historique à laquelle on ajoute au lieu d'écraser, et qui grossit à chaque sauvegarde.
- 4
Le schéma n'a jamais été migré
La ressource livrait un .sql à jour et seul le code a été mis à jour.
Comment savoir laquelle est la vôtre
Regardez la colonne, puis la valeur :
SHOW COLUMNS FROM users LIKE 'inventory'; SELECT LENGTH(inventory) FROM users ORDER BY LENGTH(inventory) DESC LIMIT 5;
Si la plus longue valeur existante frôle la limite, cela va arriver à tout le monde, pas seulement au joueur qui l'a signalé.
Où regarder
La définition de la colonne, et ce que la ressource y écrit.
Comment la corriger
Donnez de la place à la colonne. LONGTEXT ne coûte rien tant qu'il n'est pas utilisé :
ALTER TABLE users MODIFY inventory LONGTEXT;
Pour un journal réellement sans limite, déplacez-le dans sa propre table avec une ligne par entrée plutôt qu'un blob qui grossit.
Toujours bloqué sur votre propre code ?
Cette page explique ce que cette erreur signifie en général. Collez votre console dans Server Fixer : il classera tout ce qui s'y trouve et vous dira quoi faire en premier ; et si vous préférez ne pas y toucher, ORBIE peut réparer le script et vous rendre la ressource prête à déposer.
bug_reportOuvrir le Server FixerPour ce type d'erreur, le Script Optimizer repère les motifs de requête à l'origine de ceci.