THE ORB
Uruchamiam studio

Data too long for column '<nazwa>'

Coś było za duże na miejsce, w które miało zostać zapisane, więc nie zostało zapisane w ogóle — zwykle chodzi o ekwipunki.

groupsDane po cichu przepadającodePotrzebny programista

Zrób najpierw to

Kolumnę w bazie trzeba powiększyć. Poproś hostingodawcę albo programistę, żeby ją poszerzył.

bug_reportWklej zamiast tego całą konsolę

Co to znaczy

Wartość jest większa, niż kolumna potrafi pomieścić, a MySQL odmówił cichego obcięcia. Zapis się nie odbył, więc to, co było zapisywane, przepadło.

Co to powoduje

Uszeregowane według tego, jak często są odpowiedzią.

  1. 1

    JSON zapisywany w za małej kolumnie

    Ekwipunki, metadane i dane prac rosną. VARCHAR(255) pomieści ekwipunek startowy, ale nie prawdziwy; TEXT kończy się na 65 KB, a duży ekwipunek potrafi to przebić.

  2. 2

    Nick gracza ze znakami wielobajtowymi

    Nazwa mająca 20 znaków to 60+ bajtów w utf8mb4. VARCHAR(20) liczy znaki, ale indeks na nim liczy bajty.

  3. 3

    Dopisywanie zamiast podmieniania

    Kolumna logu albo historii, do której się dopisuje zamiast nadpisywać, rośnie z każdym zapisem.

  4. 4

    Schemat nigdy nie został zmigrowany

    Zasób przyszedł ze zaktualizowanym .sql, a zaktualizowano tylko kod.

Jak poznać, który jest twój

Sprawdź kolumnę, potem wartość:

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

Jeśli najdłuższa istniejąca wartość jest blisko limitu, zaraz dostaną tego wszyscy, nie tylko gracz, który zgłosił.

Gdzie szukać

Definicja kolumny i to, co zasób do niej zapisuje.

Jak to naprawić

Daj kolumnie miejsce. LONGTEXT nic nie kosztuje, dopóki się go nie wykorzysta:

ALTER TABLE users MODIFY inventory LONGTEXT;

Dla naprawdę nieograniczonego logu przenieś go do własnej tabeli z jednym wierszem na wpis, zamiast trzymać jeden rosnący blob.

Wciąż utknąłeś na własnym kodzie?

Ta strona mówi, co ten błąd zwykle oznacza. Wklej swoją konsolę do Server Fixera, a uszereguje wszystko, co w niej jest, i powie, co zrobić najpierw; a jeśli wolisz tego nie ruszać, ORBIE naprawi skrypt i odda ci zasób gotowy do wrzucenia.

bug_reportOtwórz Server Fixer

Dla tego rodzaju błędu Script Optimizer wyłapuje wzorce zapytań, które to powodują.

Błędy, które chodzą z tym w parze