MySQL中有一些sql_mode
值:
ANSI
,
IGNORE_SPACE
,
STRICT_TRANS_TABLES
等
我怎样才能看到一个特定值?手册说:
您可以通过发出SELECT @@ sql_mode来检索当前模式 言。
但它只是显示任何内容,只有一个空白字段在@@sql_mode
作为列名称的表中。
答案 0 :(得分:111)
这对你来说只是空白,因为你还没有设置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)
答案 1 :(得分:11)
您也可以尝试此操作来确定当前的全局 sql_mode
值:
SELECT @@GLOBAL.sql_mode;
或会话 sql_mode
值:
SELECT @@SESSION.sql_mode;
我也感觉 SQL模式确实是空的。
答案 2 :(得分:1)
您需要首先使用登录到您的 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;