sql_mode
MySQL 에는 몇 가지 값 이 있습니다 .
ANSI
,
IGNORE_SPACE
,
STRICT_TRANS_TABLES
등
하나의 특정 값을 어떻게 볼 수 있습니까? 매뉴얼은 다음과 같이 말합니다.
SELECT @@ sql_mode 문을 실행하여 현재 모드를 검색 할 수 있습니다.
그러나 @@sql_mode
열 이름으로 테이블에 빈 필드 하나만 표시 됩니다.
답변:
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
등이 설정 되지 않은 것과 동일한 의미 입니까? 아니면 그들 중 일부가 설정되었지만 단순히 기본적으로 표시되지 않는다는 의미입니까?
현재 전역 sql_mode
값 을 확인하기 위해 이것을 시도 할 수도 있습니다 .
SELECT @@GLOBAL.sql_mode;
또는 세션 sql_mode
값 :
SELECT @@SESSION.sql_mode;
SQL 모드 가 실제로 비어 있다는 느낌도 들었습니다 .