sql_mode
MySQL中有一些值:
ANSI
,
IGNORE_SPACE
,
STRICT_TRANS_TABLES
等
我如何看到一个特定的价值?该手册说:
您可以通过发出SELECT @@ sql_mode语句来检索当前模式。
但是它什么也没显示,只是表中的一个空白字段@@sql_mode
作为列名。
Answers:
它对您来说只是空白,因为您尚未设置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)
PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ORACLE,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER
and一样吗?还是您说其中的一些已设置但默认情况下不显示?
您也可以尝试确定当前的全局 sql_mode
值:
SELECT @@GLOBAL.sql_mode;
或会话 sql_mode
值:
SELECT @@SESSION.sql_mode;
我还感觉到SQL模式确实是空的。