DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(mysql.info.gz) SHOW WARNINGS

Info Catalog (mysql.info.gz) SHOW VARIABLES (mysql.info.gz) SHOW
 
 13.5.4.20 `SHOW WARNINGS' Syntax
 ................................
 
      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, or nothing if
 the last statement that used a table generated no messages.  This
 statement is implemented as of MySQL 4.1.0.  A related statement, `SHOW
 ERRORS', shows only the errors.   `SHOW ERRORS' SHOW ERRORS.
 
 The list of messages is reset for each new statement that uses a table.
 
 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 low enough 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.
  `SELECT' SELECT.
 
 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()'.  
 `mysql_warning_count()' mysql_warning_count.
 
 Note that the framework for warnings was added in MySQL 4.1.0, at which
 point many statements did not generate warnings.  In 4.1.1, the
 situation is much improved, with warnings generated for statements such
 as `LOAD DATA INFILE' and DML statements such as `INSERT', `UPDATE',
 `CREATE TABLE', and `ALTER TABLE'.
 
 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.
 
Info Catalog (mysql.info.gz) SHOW VARIABLES (mysql.info.gz) SHOW
automatically generated byinfo2html