sql_modeの特定の値を確認するにはどうすればよいですか?


94

sql_modeMySQLにはいくつかの値があります。

ANSI

IGNORE_SPACE

STRICT_TRANS_TABLES、など

1つの特定の値をどのように確認できますか?マニュアルには次のように書かれています。

SELECT @@ sql_modeステートメントを発行することにより、現在のモードを取得できます。

ただし、何も表示されず、@@sql_mode列名としてテーブル内の1つの空白フィールドのみが表示されます。

回答:


144

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)

2
ありがとう、これはうまくいきます。ただし、一部にはデフォルト値があります。値を設定せずにデフォルトを表示したかったのです。またはそれは不可能ですか?
グリーン

1
組み合わせモードはすべてここに記載されています:dev.mysql.com/doc/refman/5.5/en/server-sql-mode.html。たとえば、ここでは、ORACLEの組み合わせモードを構成する7つのモードを確認できます。dev.mysql.com
Ike Walker

1
「デフォルトのSQLモードは空です(モードが設定されていません)。」サーバーSQLモードのMySQLサーバー管理マニュアルページから引用。私はそれを、特別なsql_modeがすぐに設定されていないことを意味すると解釈します。
Mister_Tom 2013

@IkeWalker、デフォルト(「ブランク」モード)では、PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ORACLE,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USERandなどがすべて設定されていないのと同じことですか?それとも、それらのいくつかは設定されているが、デフォルトでは表示されないということですか?
Pacerier 2016

1
@Pacerier前者は正しいです。@@ sql_modeが空の場合(呼び出す「空白」モード)、sql_modeは設定されません。デフォルトのsql_modeについてはコメントしません。これは、実行しているMySQLのバージョンによって異なるためです。
Ike Walker

23

これを試して、現在のグローバル sql_mode値を決定することもできます。

SELECT @@GLOBAL.sql_mode;

またはセッション sql_mode値:

SELECT @@SESSION.sql_mode;

また、SQLモードは本当に空っぽだと感じました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.