1231: Variable can't be set to the value of ...
MySQLЧто это значит?
Значение, присваиваемое системной/сеансовой переменной (через SET), недопустимо. Значение отклонено, так как находится вне допустимого набора, имеет неверный тип или неподходящий формат.
Почему возникает?
Частые примеры: присваивание sql_mode недопустимого/написанного с ошибкой имени режима, указание неопределённого варианта для переменной типа enum или присваивание NULL переменной, не допускающей NULL. Причиной также могут быть числовые значения в неверных единицах/диапазоне.
Как исправить
Проверьте допустимые значения и тип, принимаемые переменной; для переменных типа ENUM/SET (например, sql_mode, имеющей тип SET) пишите имена значений/режимов точно и разделяйте несколько значений запятыми. Проверьте допустимый диапазон значений в документации. Для списков, таких как sql_mode, прочитайте текущее значение (SELECT @@sql_mode) и безопасно добавляйте/удаляйте элементы поверх него.