THE ORB
Démarrage du studio

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.

groupsDes données se perdent en silencecodeIl faut un développeur

Faites d'abord ceci

Il faut agrandir la colonne de la base de données. Demandez-le à votre hébergeur ou à un développeur.

bug_reportCollez plutôt toute votre console

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. 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 ; TEXT plafonne à 65 Ko et un gros inventaire peut le dépasser.

  2. 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. 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. 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 Fixer

Pour ce type d'erreur, le Script Optimizer repère les motifs de requête à l'origine de ceci.

Les erreurs qui voyagent avec celle-ci