How can I see the specific value of the sql_mode?

There are some sql_mode values in MySQL:

ANSI,

IGNORE_SPACE,

STRICT_TRANS_TABLES, etc

How can I see the one particular value? The manual says:

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

But it just shows nothing, just one blank field in a table with @@sql_mode as a column name.

168324 次浏览

对于您来说,它只是空白的,因为您还没有设置 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;

or 会议 sql_mode value:

SELECT @@SESSION.sql_mode;

我也感觉到 SQL 模式确实是空的。

您需要首先使用以下命令登录到 mysql 终端 mysql -u username -p password

那就用这个:

SELECT @@sql_mode; or SELECT @@GLOBAL.sql_mode;

输出将是这样的:

严格输入表格,严格输入表格,NO _ ZERO _ IN _ Date,NO _ ZERO _ Date,错误输入表格,传统表格,NO _ Auto _ create _ user,NO _ Engine _ SUB

您还可以通过以下方法设置 sql 模式:

SET GLOBAL sql_mode=TRADITIONAL;