Data too long for column '<ad>'
Bir şey kaydedileceği yere sığmayacak kadar büyüktü, o yüzden hiç kaydedilmedi — en yaygın durum envanterlerdir.
Önce şunu yap
Veritabanı sütununun büyütülmesi gerekiyor. Barındırıcından ya da bir geliştiriciden genişletmesini iste.
Ne anlama gelir
Değer, sütunun tutabileceğinden büyük ve MySQL onu sessizce kırpmayı reddetti. Yazma hiç gerçekleşmedi, yani kaydedilmeye çalışılan şey kayboldu.
Neden olur
Ne sıklıkla doğru cevap olduğuna göre sıralı.
- 1
Fazla küçük bir sütunda saklanan JSON
Envanterler, metadata ve meslek yükleri büyür.
VARCHAR(255)başlangıç envanterini tutar, gerçek olanı tutmaz;TEXT65 KB'de tavan yapar ve büyük bir envanter bunu geçebilir. - 2
Çok baytlı karakterler içeren bir oyuncu adı
20 karakterlik bir ad utf8mb4'te 60+ bayttır.
VARCHAR(20)karakter ölçer, ama üzerindeki bir indeks bayt ölçer. - 3
Değiştirmek yerine biriktirmek
Üzerine yazmak yerine eklenen, her kayıtta büyüyen bir kayıt ya da geçmiş sütunu.
- 4
Şema hiç göç ettirilmemiş
Kaynak güncellenmiş bir .sql ile geldi ve yalnızca kod güncellendi.
Hangisinin seninki olduğu nasıl anlaşılır
Önce sütunu, sonra değeri kontrol et:
SHOW COLUMNS FROM users LIKE 'inventory'; SELECT LENGTH(inventory) FROM users ORDER BY LENGTH(inventory) DESC LIMIT 5;
Mevcut en uzun değer sınıra yakınsa, bunu yalnızca bildiren oyuncu değil, herkes yaşamak üzeredir.
Nereye bakmalı
Sütun tanımı, ve kaynağın içine ne yazdığı.
Nasıl düzeltilir
Sütuna yer aç. LONGTEXT kullanılana kadar hiçbir şeye mal olmaz:
ALTER TABLE users MODIFY inventory LONGTEXT;
Gerçekten sınırsız bir kayıt için, onu tek bir büyüyen blob yerine girdi başına bir satır olacak şekilde kendi tablosuna taşı.
Hâlâ kendi kodunda mı takıldın?
Bu sayfa, bu hatanın genelde ne anlama geldiğini anlatır. Konsolunu Server Fixer'a yapıştır; içindeki her şeyi sıraya dizer ve önce ne yapman gerektiğini söyler. Kendin uğraşmak istemiyorsan ORBIE script'i onarır ve kaynağı sunucuna atmaya hazır geri verir.
bug_reportServer Fixer'ı açBu tür bir hata için Script Optimizer buna yol açan sorgu kalıplarını yakalar.