(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