Вопрос по mysql – Как я могу увидеть конкретное значение sql_mode?

63

Есть некоторыеsql_mode значения в MySQL:

ANSI,

IGNORE_SPACE,

STRICT_TRANS_TABLES, так далее

Как я могу увидеть одно конкретное значение? В руководстве сказано:

You can retrieve the current mode by issuing a SELECT @@sql_mode statement.

Но это просто ничего не показывает, только одно пустое поле в таблице с@@sql_mode как имя столбца.

Ваш Ответ

2   ответа
104

потому что вы не установили 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)
@Pacerier первое правильно. Если @@ sql_mode пуст (режим «blank», как вы его называете), тогдаno sql_mode установлен. Я не буду комментировать стандартный sql_mode, потому что это зависит от того, какую версию MySQL вы используете.
& quot; Режим SQL по умолчанию пуст (режим не установлен). & quot; Цитируется на странице руководства по администрированию MySQL Server дляServer SQL Modes, Я понимаю, что это означает, чтоnone из специальных sql_mode 's из коробки.
Спасибо, это работает. Но некоторые из них имеют свои значения по умолчанию. Я имел в виду, что хотел увидеть значения по умолчанию без установки значения. Или это невозможно? Green
Комбинированные режимы описаны здесь:dev.mysql.com/doc/refman/5.5/en/server-sql-mode.html, Например, здесь вы можете увидеть, какие 7 режимов составляют режим комбинации ORACLE:dev.mysql.com/doc/refman/5.5/en/…
@ IkeWalker, Вы хотите сказать, что по умолчанию (режим «пусто») это эквивалентно тому, как если бы всеPIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ORACLE,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER и т. д.not задавать? Или вы имеете в виду, что некоторые из них установлены, но просто не отображаются по умолчанию?
10

global sql_mode значение:

SELECT @@GLOBAL.sql_mode;

или жеsession sql_mode значение:

SELECT @@SESSION.sql_mode;

У меня также было чувство, чтоSQL mode был действительно пуст.

Похожие вопросы