SHOW WARNINGS [LIMIT [offset,]row_count] SHOW COUNT(*) WARNINGS
        SHOW WARNINGS shows the error,
        warning, and note messages that resulted from the last statement
        that generated messages in the current session. It shows nothing
        if the last statement used a table and generated no messages.
        (That is, a statement that uses a table but generates no
        messages clears the message list.) Statements that do not use
        tables and do not generate messages have no effect on the
        message list.
      
        Warnings are generated for DML statements such as
        INSERT,
        UPDATE, and
        LOAD DATA
        INFILE as well as DDL statements such as
        CREATE TABLE and
        ALTER TABLE.
      
        A related statement, SHOW ERRORS,
        shows only the errors. See Section 12.5.5.18, “SHOW ERRORS Syntax”.
      
        The SHOW COUNT(*) WARNINGS statement displays
        the total number of errors, warnings, and notes. You can also
        retrieve this number from the
        warning_count variable:
      
SHOW COUNT(*) WARNINGS; SELECT @@warning_count;
        The value of warning_count
        might be greater than the number of messages displayed by
        SHOW WARNINGS if the
        max_error_count system variable
        is set so low that not all messages are stored. An example shown
        later in this section demonstrates how this can happen.
      
        The LIMIT clause has the same syntax as for
        the SELECT statement. See
        Section 12.2.8, “SELECT Syntax”.
      
        The MySQL server sends back the total number of errors,
        warnings, and notes resulting from the last statement. If you
        are using the C API, this value can be obtained by calling
        mysql_warning_count(). See
        Section 20.10.3.72, “mysql_warning_count()”.
      
        The following DROP TABLE
        statement results in a note:
      
mysql>DROP TABLE IF EXISTS no_such_table;mysql>SHOW WARNINGS;+-------+------+-------------------------------+ | Level | Code | Message | +-------+------+-------------------------------+ | Note | 1051 | Unknown table 'no_such_table' | +-------+------+-------------------------------+
        Here is a simple example that shows a syntax warning for
        CREATE TABLE and conversion
        warnings for INSERT:
      
mysql>CREATE TABLE t1 (a TINYINT NOT NULL, b CHAR(4)) TYPE=MyISAM;Query OK, 0 rows affected, 1 warning (0.00 sec) mysql>SHOW WARNINGS\G*************************** 1. row *************************** Level: Warning Code: 1287 Message: 'TYPE=storage_engine' is deprecated, use 'ENGINE=storage_engine' instead 1 row in set (0.00 sec) mysql>INSERT INTO t1 VALUES(10,'mysql'),(NULL,'test'),->(300,'Open Source');Query OK, 3 rows affected, 4 warnings (0.01 sec) Records: 3 Duplicates: 0 Warnings: 4 mysql>SHOW WARNINGS\G*************************** 1. row *************************** Level: Warning Code: 1265 Message: Data truncated for column 'b' at row 1 *************************** 2. row *************************** Level: Warning Code: 1263 Message: Data truncated, NULL supplied to NOT NULL column 'a' at row 2 *************************** 3. row *************************** Level: Warning Code: 1264 Message: Data truncated, out of range for column 'a' at row 3 *************************** 4. row *************************** Level: Warning Code: 1265 Message: Data truncated for column 'b' at row 3 4 rows in set (0.00 sec)
        The maximum number of error, warning, and note messages to store
        is controlled by the
        max_error_count system
        variable. By default, its value is 64. To change the number of
        messages you want stored, change the value of
        max_error_count. In the
        following example, the ALTER
        TABLE statement produces three warning messages, but
        only one is stored because
        max_error_count has been set to
        1:
      
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;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>SELECT @@warning_count;+-----------------+ | @@warning_count | +-----------------+ | 3 | +-----------------+ 1 row in set (0.01 sec) mysql>SHOW WARNINGS;+---------+------+----------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------+ | Warning | 1263 | Data truncated for column 'b' at row 1 | +---------+------+----------------------------------------+ 1 row in set (0.00 sec)
        To disable warnings, set
        max_error_count to 0. In this
        case, warning_count still
        indicates how many warnings have occurred, but none of the
        messages are stored.
      
        You can set the sql_notes
        session variable to 0 to cause Note-level
        warnings not to be recorded.
      

User Comments
Add your own comment.