1406: Data too long for column
MySQLNe demek?
Bir sütuna, tanımlı maksimum uzunluğundan daha uzun bir değer yazılmaya çalışıldı. Örneğin VARCHAR(10) sütununa 20 karakterlik metin sığmaz.
Neden olur?
Sütun genişliğinin veriye göre yetersiz olması; çok baytlı karakter kümesinde (utf8mb4) karakterlerin beklenenden fazla yer kaplaması; birleştirme sonucunun uzaması; strict SQL modunun aktif olması (aksi halde sessizce kırpılır).
Nasıl çözülür?
Sütunu genişletin: ALTER TABLE tablo MODIFY sutun VARCHAR(255); Çok uzun içerik için TEXT tipini değerlendirin. Değeri kısaltmak gerekiyorsa uygulamada ya da SUBSTRING ile budayın. Hangi kaydın taştığını bulun: SELECT * FROM tablo WHERE CHAR_LENGTH(sutun) > 10; Giriş doğrulaması ekleyin.