(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