DBAtlas · Veritabanı operasyon atlası

1364: Field 'name' doesn't have a default value

MySQL

Ne 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.

DBAtlas'ta aç →

Aynı motorda diğer kayıtlar