MySQL にはいくつかのsql_mode
値があります。
ANSI
、
IGNORE_SPACE
、
STRICT_TRANS_TABLES
など
1 つの特定の値を確認するにはどうすればよいですか? マニュアルには次のように書かれています。
現在のモードを取得するには、SELECT @@sql_mode ステートメントを発行します。
@@sql_mode
しかし、何も表示されず、列名としてテーブル内の空白のフィールドが 1 つだけ表示されます。
MySQL にはいくつかのsql_mode
値があります。
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)
これを試して、現在のグローバル sql_mode
値を決定することもできます。
SELECT @@GLOBAL.sql_mode;
またはセッション sql_mode
値:
SELECT @@SESSION.sql_mode;
また、 SQL モードが実際に空であると感じました。
まず、mysql ターミナルにログインする必要があります。
mysql -u username -p password
次に、これを使用します。
SELECT @@sql_mode; or SELECT @@GLOBAL.sql_mode;
出力は次のようになります。
STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUB
これでSQLモードを設定することもできます:
SET GLOBAL sql_mode=TRADITIONAL;