1364: Field 'name' doesn't have a default value
MySQLNe demek?
NOT NULL olarak tanımlı ve varsayılan değeri (DEFAULT) olmayan bir sütuna değer verilmeden satır eklenmeye çalışıldı. Strict SQL modunda MySQL, eksik zorunlu sütunu otomatik dolduramadığı için hata verir.
Neden olur?
INSERT ifadesinde zorunlu (NOT NULL, DEFAULT'suz) sütun atlanmış; sql_mode içinde STRICT_TRANS_TABLES/STRICT_ALL_TABLES etkin. Eski, gevşek modda çalışan bir uygulama, strict mod açık bir sunucuya taşındığında bu hatayı yaşar.
Nasıl çözülür?
INSERT'e eksik sütun için değer ekleyin ya da sütuna mantıklı bir DEFAULT tanımlayın: ALTER TABLE tablo MODIFY sutun ... NOT NULL DEFAULT 'deger'; Sütun gerçekten opsiyonelse NULL'a izin verin. Geçici/uyumluluk çözümü olarak sql_mode gevşetilebilir ancak veri kalitesi açısından strict modu korumak önerilir.
Aynı motorda diğer kayıtlar
- 3140ER_INVALID_JSON_TEXT: Invalid JSON text
- 1526ER_NO_PARTITION_FOR_GIVEN_VALUE: Table has no partition for value
- 1049Unknown database 'name'
- 1206The total number of locks exceeds the lock table size
- 1236Got fatal error 1236 from master when reading data from binary log
- 1129Host 'host' is blocked because of many connection errors
- 1194Table 'name' is marked as crashed and should be repaired