DBAtlas · Veritabanı operasyon atlası

1366: Incorrect string/integer value for column

MySQL

Ne demek?

Bir sütuna, o sütunun türü ya da karakter kümesiyle uyumsuz bir değer eklenmeye çalışıldı. Genellikle karakter kodlaması ya da tür uyuşmazlığı kaynaklıdır.

Neden olur?

Sütun latin1 iken 4 baytlık emoji/karakter (utf8mb4) yazılması, sayısal sütuna sayı olmayan metin girilmesi, yanlış connection charset'i veya beklenenden farklı türde değer gönderilmesi.

Nasıl çözülür?

Karakter sorununda sütunu/tabloyu utf8mb4 yapın: ALTER TABLE tablo CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ve bağlantı charset'ini utf8mb4 ayarlayın. Sayısal alanlarda uygulama tarafında tür doğrulaması yapın. Sunucunun katı SQL modunda (STRICT) çalıştığını unutmayın; kök neden verinin türü/kodlamasıdır.

DBAtlas'ta aç →

Aynı motorda diğer kayıtlar