1366: Incorrect string/integer value for column
MySQLNe 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.
Aynı motorda diğer kayıtlar
- 1215Cannot add foreign key constraint
- 1451Cannot delete or update a parent row: a foreign key constraint fails
- 1452Cannot add or update a child row: a foreign key constraint fails
- 1044Access denied for user to database
- 1264Out of range value for column
- 1052Column 'x' in field list is ambiguous
- 1136Column count doesn't match value count