1231: Variable can't be set to the value of ...(変数を ... の値に設定できない)
MySQL意味
(SET で) システム/セッション変数に代入しようとしている値が無効である。許容される集合の範囲外、誤った型、または不適切な書式のため値が拒否された。
原因
よくある例: sql_mode への無効/綴り誤りのモード名の代入、enum 変数への未定義のオプションの指定、または NULL を受け付けない変数への NULL の代入。誤った単位/範囲の数値でも発生する。
対処方法
変数が受け付ける有効な値と型を確認する。ENUM/SET 型の変数 (例: SET 型である sql_mode) では、値/モード名を正確に綴り、複数の値はカンマで区切る。有効な値の範囲をドキュメントで確認する。sql_mode のようなリストでは、現在の値を読み取り (SELECT @@sql_mode)、その上で安全に項目を追加/削除する。
同じデータベースの他の項目
- 3024Query execution was interrupted, maximum statement execution time exceeded(最大文実行時間を超えたためクエリの実行が中断された)
- 1298Unknown or incorrect time zone(不明または誤ったタイムゾーン)
- 1418Function has none of DETERMINISTIC, NO SQL, or READS SQL DATA (binary logging enabled)(関数に DETERMINISTIC、NO SQL、READS SQL DATA のいずれもない (バイナリログ有効))