• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 1. 데이터 정의 문
    2. 데이터 조작 문
    3. MySQL 트랜잭션과 잠금 문
    4. 복제 문
    5. Prepared Statements위한 SQL 구문
    6. MySQL 복합문 구문
    7. 데이터베이스 관리 문
    1. 계정 관리 문
    2. 테이블 유지 보수 문
    3. 플러그인 및 사용자 정의 함수 문
    4. SET 구문
    5. SHOW 구문
    1. SHOW AUTHORS 구문
    2. SHOW BINARY LOGS 구문
    3. SHOW BINLOG EVENTS 구문
    4. SHOW CHARACTER SET 구문
    5. SHOW COLLATION 구문
    6. SHOW COLUMNS 구문
    7. SHOW CONTRIBUTORS 구문
    8. SHOW CREATE DATABASE 구문
    9. SHOW CREATE EVENT 구문
    10. SHOW CREATE FUNCTION 구문
    11. SHOW CREATE PROCEDURE 구문
    12. SHOW CREATE TABLE 구문
    13. SHOW CREATE TRIGGER 구문
    14. SHOW CREATE VIEW 구문
    15. SHOW DATABASES 구문
    16. SHOW ENGINE 구문
    17. SHOW ENGINES 구문
    18. SHOW ERRORS 구문
    19. SHOW EVENTS 구문
    20. SHOW FUNCTION CODE 구문
    21. SHOW FUNCTION STATUS 구문
    22. SHOW GRANTS 구문
    23. SHOW INDEX 구문
    24. SHOW MASTER STATUS 구문
    25. SHOW OPEN TABLES 구문
    26. SHOW PLUGINS 구문
    27. SHOW PRIVILEGES 구문
    28. SHOW PROCEDURE CODE 구문
    29. SHOW PROCEDURE STATUS 구문
    30. SHOW PROCESSLIST 구문
    31. SHOW PROFILE 구문
    32. SHOW PROFILES 구문
    33. SHOW RELAYLOG EVENTS 구문
    34. SHOW SLAVE HOSTS 구문
    35. SHOW SLAVE STATUS 구문
    36. SHOW STATUS 구문
    37. SHOW TABLE STATUS 구문
    38. SHOW TABLES 구문
    39. SHOW TRIGGERS 구문
    40. SHOW VARIABLES 구문
    41. SHOW WARNINGS 구문
    6. 기타 관리 문
    8. MySQL 유틸리티 문
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

13.7.5.41 SHOW WARNINGS 구문

SHOW WARNINGS [LIMIT [offset,] row_count]
SHOW COUNT(*) WARNINGS 

SHOW WARNINGS 은 현재 세션에서 명령문의 실행 결과로 얻은 조건 (오류, 경고 및주의)에 대한 정보를 표시하는 진단 문입니다. 경고는 INSERT , UPDATE , LOAD DATA INFILE 등의 DML 문 외에도 CREATE TABLE 또는 ALTER TABLE 등의 DDL 문에 대해 생성됩니다.

LIMIT 절 구문은 SELECT 문의 경우와 동일합니다. 섹션 13.2.9 "SELECT 구문" 을 참조하십시오.

SHOW WARNINGS 또한 EXTENDED 키워드가 사용되는 EXPLAIN 에 의해 생성 된 추가 정보를 표시하기 위해 EXPLAIN EXTENDED 후에도 사용됩니다. 섹션 8.8.3 "EXPLAIN EXTENDED 출력 형식" 을 참조하십시오.

SHOW WARNINGS 는 메시지를 생성 한 현재 세션에서 최신 문의 결과로 얻은 조건에 대한 정보를 표시합니다. 최신 문이 테이블을 사용하여 메시지를 생성하지 않았던 경우는 아무것도 표시하지 않습니다. (즉, 테이블을 사용하지만, 메시지를 생성하지 않는 문은 메시지 목록을 삭제합니다.) 테이블을 사용하지 않고 메시지를 생성하지 않는 문은 메시지 목록에 영향을주지 않습니다.

SHOW COUNT(*) WARNINGS 진단 문은 오류, 경고 및주의 수를 표시합니다. 이 숫자는 또한 warning_count 시스템 변수에서 얻을 수 있습니다.

 SHOW COUNT (*) WARNINGS;
 SELECT @@ warning_count;

관련 진단 문 SHOW ERRORS 은 오류 상태 만 (경고 및주의는 제외됩니다)를 표시하고 SHOW COUNT(*) ERRORS 문은 오류 수를 표시합니다. 섹션 13.7.5.18 "SHOW ERRORS 구문" 을 참조하십시오. GET DIAGNOSTICS 를 사용하면 각 조건에 대한 정보를 확인할 수 있습니다. 섹션 13.6.7.3 "GET DIAGNOSTICS 구문" 을 참조하십시오.

INSERT 데이터 변환 경고를 표시하는 간단한 예를 보여줍니다.

 mysql> CREATE TABLE t1 (a TINYINT NOT NULL, b CHAR(4));
 Query OK, 0 rows affected (0.05 sec)

 mysql> INSERT INTO t1 VALUES(10,'mysql'), (NULL,'test'), (300,'xyz');
 Query OK, 3 rows affected 3 warnings (0.00 sec)
 Records : 3 Duplicates : 0 Warnings : 3

 mysql> SHOW WARNINGS\G
 *************************** 1. row ******************** *******
   Level : Warning
    Code : 1265
 Message : Data truncated for column 'b'at row 1
 *************************** 2. row ******************** *******
   Level : Warning
    Code : 1048
 Message : Column 'a'can not be null
 *************************** 3. row ******************** *******
   Level : Warning
    Code : 1264
 Message : Out of range value for column 'a'at row 3
 3 rows in set (0.00 sec)

max_error_count 시스템 변수는 서버가 정보를 저장하는 대상이되는 오류, 경고 및주의 메시지의 최대 수, 따라서 SHOW WARNINGS 가 표시되는 메시지의 수를 제어합니다. 서버에 저장할 수있는 메시지의 수를 변경하려면 max_error_count 값을 변경합니다. 기본값은 64입니다.

max_error_count 카운트되는 메시지의 수가 아니라, 저장되는 메시지의 수만을 제어합니다. 생성 된 메시지의 수가 max_error_count 을 초과 한 경우에도 warning_count 값은 max_error_count 의해 제한되지 않습니다. 이 점에 대해 다음 예에서 설명합니다. 이 ALTER TABLE 문은 3 개의 경고 메시지를 생성합니다 (이 예에서는 변환 문제가 하나 발생했을 때 오류가 발생하지 않도록 엄격한 SQL 모드가 비활성화되어 있습니다). max_error_count 가 1로 설정 되었기 때문에 저장되어 표시된 메시지는 하나 뿐이지 만 warning_count 값에 표시된대로 세 가지가 카운트되어 있습니다.

mysql> SHOW VARIABLES LIKE 'max_error_count';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_error_count | 64    |
+-----------------+-------+
1 row in set (0.00 sec)

mysql> SET max_error_count=1, sql_mode = '';
Query OK, 0 rows affected (0.00 sec)

mysql> ALTER TABLE t1 MODIFY b CHAR;
Query OK, 3 rows affected, 3 warnings (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 3

mysql> SHOW WARNINGS;
+---------+------+----------------------------------------+
| Level   | Code | Message                                |
+---------+------+----------------------------------------+
| Warning | 1263 | Data truncated for column 'b' at row 1 |
+---------+------+----------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT @@warning_count;
+-----------------+
| @@warning_count |
+-----------------+
|               3 |
+-----------------+
1 row in set (0.01 sec)

메시지의 저장을 해제하려면 max_error_count 를 0으로 설정합니다. 이 경우 warning_count 는 계속 발생한 경고의 수를 나타냅니다하지만 메시지는 저장되지 않기 때문에 표시 할 수 없습니다.

sql_notes 시스템 변수는주의 메시지 warning_count 이 증가되는지 여부와 서버가 그들을 저장할지 여부를 제어합니다. 기본적으로 sql_notes 는 1이지만, 0으로 설정되어있는 경우는주의로 warning_count 이 증가되지 않고, 또한 서버는 그들을 저장하지 않습니다.

mysql> SET sql_notes = 1;
mysql> DROP TABLE IF EXISTS test.no_such_table;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> SHOW WARNINGS;
+-------+------+------------------------------------+
| Level | Code | Message                            |
+-------+------+------------------------------------+
| Note  | 1051 | Unknown table 'test.no_such_table' |
+-------+------+------------------------------------+
1 row in set (0.00 sec)

mysql> SET sql_notes = 0;
mysql> DROP TABLE IF EXISTS test.no_such_table;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW WARNINGS;
Empty set (0.00 sec)

MySQL 서버는 각 클라이언트에 클라이언트에 의해 실행 된 최신의 문의 결과로 얻어진 오류, 경고 및주의 수를 나타내는 숫자를 보냅니다. C API에서이 값은 mysql_warning_count() 를 호출함으로써 얻을 수 있습니다. 섹션 23.8.7.73 "mysql_warning_count ()" 를 참조하십시오.

서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved