1231: Variable can't be set to the value of ...
MySQLNe demek?
Bir sistem/oturum değişkenine (SET komutuyla) verilmeye çalışılan değer geçersiz. Değişken için verilen değer izin verilen kümenin dışında, yanlış türde ya da uygunsuz bir formatta olduğu için reddedildi.
Neden olur?
Sık örnekler: sql_mode'a geçersiz/yanlış yazılmış bir mod adı atanması, bir enum değişkenine tanımsız bir seçenek verilmesi, ya da NULL kabul etmeyen bir değişkene NULL atanması. Yanlış birim/aralıkta sayısal değerler de tetikleyebilir.
Nasıl çözülür?
Değişkenin kabul ettiği geçerli değerleri ve türünü doğrulayın; enum/SET türü değişkenlerde (ör. SET türündeki sql_mode) değer/mod adlarını tam ve doğru yazın, birden çoğunu virgülle ayırın. Geçerli değer aralığını belgeye göre kontrol edin. sql_mode gibi listelerde mevcut değeri okuyup (SELECT @@sql_mode) üzerine güvenli biçimde ekleme/çıkarma yapın.