結論
SQLモードを明示的にクリアすることで、デフォルトのSQLモード設定を利用することを指定しています。
SQLモードとは
サーバー SQL モードは、MySQL でサポートされる SQL 構文、および実行されるデータ妥当性チェックの種類を定義します。これにより、MySQL をさまざまな環境で使用したり、MySQL をほかのデータベースサーバーと一緒に使用したりすることが、さらに容易になります。MySQL サーバーは、これらのモードを各クライアントに個別に適用します。
現在のSQLモードの確認
SQLモードには複数の項目があり、個別にON/OFFを指定できます。
MySQL5.7のデフォルトのSQLモード設定では、以下に示す7つの項目がONになっています。
SELECT @@global.sql_mode;
-- 出力(以下はデフォルトの設定)
+-------------------------------------------------------------------------------------------------------------------------------------------+
| @@global.sql_mode |
+-------------------------------------------------------------------------------------------------------------------------------------------+
| ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+-------------------------------------------------------------------------------------------------------------------------------------------+
それぞれのモードについては5.1.7 サーバー SQL モードを参照のこと。
SQLモードの設定
1.SETコマンドで設定する
-- デフォルトの設定にする場合
SET GLOBAL sql_mode = '';
-- 特定の項目をオンにする場合
SET GLOBAL sql_mode = '<モード名>';
2.my.cnfなどの設定ファイルにmodeを追記してMySQLを再起動する
sql-mode='<モード名>'