sql_modeMySQLにはいくつかの値があります。
ANSI、
IGNORE_SPACE、
STRICT_TRANS_TABLES、など
1つの特定の値をどのように確認できますか?マニュアルには次のように書かれています。
SELECT @@ sql_modeステートメントを発行することにより、現在のモードを取得できます。
ただし、何も表示されず、@@sql_mode列名としてテーブル内の1つの空白フィールドのみが表示されます。
回答:
sql_modeを設定していないため、空白になっているだけです。設定すると、そのクエリに詳細が表示されます。
mysql> SELECT @@sql_mode;
+------------+
| @@sql_mode |
+------------+
| |
+------------+
1 row in set (0.00 sec)
mysql> set sql_mode=ORACLE;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT @@sql_mode;
+----------------------------------------------------------------------------------------------------------------------+
| @@sql_mode |
+----------------------------------------------------------------------------------------------------------------------+
| PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ORACLE,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER |
+----------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ORACLE,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USERandなどがすべて設定されていないのと同じことですか?それとも、それらのいくつかは設定されているが、デフォルトでは表示されないということですか?
これを試して、現在のグローバル sql_mode値を決定することもできます。
SELECT @@GLOBAL.sql_mode;
またはセッション sql_mode値:
SELECT @@SESSION.sql_mode;
また、SQLモードは本当に空っぽだと感じました。