MySQL 5.7 Reference Manual Including MySQL NDB Cluster 7.5 and NDB Cluster 7.6
SHOW WARNINGS [LIMIT [offset,]row_count] SHOW COUNT(*) WARNINGS
        SHOW WARNINGS is a diagnostic
        statement that displays information about the conditions
        (errors, warnings, and notes) resulting from executing a
        statement in the current session. Warnings are generated for DML
        statements such as INSERT,
        UPDATE, and
        LOAD DATA as well as DDL
        statements such as CREATE TABLE
        and ALTER TABLE.
      
        The LIMIT clause has the same syntax as for
        the SELECT statement. See
        Section 13.2.9, “SELECT Statement”.
      
        SHOW WARNINGS is also used
        following EXPLAIN, to display the
        extended information generated by
        EXPLAIN. See
        Section 8.8.3, “Extended EXPLAIN Output Format”.
      
        SHOW WARNINGS displays
        information about the conditions resulting from execution of the
        most recent nondiagnostic statement in the current session. If
        the most recent statement resulted in an error during parsing,
        SHOW WARNINGS shows the resulting
        conditions, regardless of statement type (diagnostic or
        nondiagnostic).
      
        The SHOW COUNT(*)
        WARNINGS diagnostic statement displays the total
        number of errors, warnings, and notes. You can also retrieve
        this number from the
        warning_count system variable:
      
SHOW COUNT(*) WARNINGS; SELECT @@warning_count;
        A difference in these statements is that the first is a
        diagnostic statement that does not clear the message list. The
        second, because it is a SELECT
        statement is considered nondiagnostic and does clear the message
        list.
      
        A related diagnostic statement, SHOW
        ERRORS, shows only error conditions (it excludes
        warnings and notes), and
        SHOW COUNT(*)
        ERRORS statement displays the total number of errors.
        See Section 13.7.5.17, “SHOW ERRORS Statement”. GET
        DIAGNOSTICS can be used to examine information for
        individual conditions. See Section 13.6.7.3, “GET DIAGNOSTICS Statement”.
      
        Here is a simple example that shows data-conversion warnings for
        INSERT. The example assumes that
        strict SQL mode is disabled. With strict mode enabled, the
        warnings would become errors and terminate the
        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' cannot 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)
        The max_error_count system
        variable controls the maximum number of error, warning, and note
        messages for which the server stores information, and thus the
        number of messages that SHOW
        WARNINGS displays. To change the number of messages
        the server can store, change the value of
        max_error_count. The default is
        64.
      
        max_error_count controls only
        how many messages are stored, not how many are counted. The
        value of warning_count is not
        limited by max_error_count,
        even if the number of messages generated exceeds
        max_error_count. The following
        example demonstrates this. The ALTER
        TABLE statement produces three warning messages
        (strict SQL mode is disabled for the example to prevent an error
        from occuring after a single conversion issue). Only one message
        is stored and displayed because
        max_error_count has been set to
        1, but all three are counted (as shown by the value of
        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)
        To disable message storage, set
        max_error_count to 0. In this
        case, warning_count still
        indicates how many warnings occurred, but messages are not
        stored and cannot be displayed.
      
        The sql_notes system variable
        controls whether note messages increment
        warning_count and whether the
        server stores them. By default,
        sql_notes is 1, but if set to
        0, notes do not increment
        warning_count and the server
        does not store them:
      
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)
        The MySQL server sends to each client a count indicating the
        total number of errors, warnings, and notes resulting from the
        most recent statement executed by that client. From the C API,
        this value can be obtained by calling
        mysql_warning_count(). See
        mysql_warning_count().
      
        In the mysql client, you can enable and
        disable automatic warnings display using the
        warnings and nowarning
        commands, respectively, or their shortcuts,
        \W and \w (see
        Section 4.5.1.2, “mysql Client Commands”). For example:
      
mysql>\WShow warnings enabled. mysql>SELECT 1/0;+------+ | 1/0 | +------+ | NULL | +------+ 1 row in set, 1 warning (0.03 sec) Warning (Code 1365): Division by 0 mysql>\wShow warnings disabled.