DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(mysql.info) show-warnings

Info Catalog (mysql.info) show-variables (mysql.info) show
 
 13.5.4.25 `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. A related
 statement, `SHOW ERRORS', shows only the errors. See 
 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 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  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()'. See
  mysql-warning-count.
 
 Warnings are 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.
 
 As of MySQL 5.0.3, you can set the `SQL_NOTES' session variable to 0 to
 cause `Note'-level warnings not to be recorded.
 
Info Catalog (mysql.info) show-variables (mysql.info) show
automatically generated byinfo2html