很多时候,我们在执行命令行执行mysql命令行时,会报错误!
mysql> show database;
ERROR 1064 (42000): You have an error in your SQLsyntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'database' at line 1
这就是我们执行命令拼写错误,mysql的错误提示! MySQL服务器会发回由上一个语句引起的错误、警告和注意的总数。
SHOW WARNINGS [LIMIT [offset,] row_count]
显示由上一个生成消息的语句导致的错误、警告和注意消息。如果上一个使用表的语句未生成消息,则什么也不显示。 (或者只执行show errors 显示其错误的信息)
SHOW COUNT(*) WARNINGS
语句显示错误、警告和注意的总数。
mysql> show warnings;
+-------+------+----------------------------------------+
| Level | Code | Message |
+-------+------+----------------------------------------+
| Error | 1064 | You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'database' at line 1 |
+-------+------+----------------------------------------+
这语句就显示了刚才执行错误命令show database的详细信息
mysql> select @@warning_count;
+-------------------------+
| @@warning_count |
+-------------------------+
| 1 |
+-------------------------+
1 row in set (0.00 sec)
执行这条语句会告诉我们,刚才我们在执行show database这条错误命令时一共产生了多少的警告和错误信息,而这些错误警告信息的提示都是通过系统变量max_error_count设置最多错误显示数目和sql_notes会话变量,使"注意"级别的警告是否被记录。
mysql> show variables like 'max_error_count';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_error_count | 64 |
+-----------------+-------+
mysql服务器默认保存错误记录为64,可以通过set max_error_count = 0 ;表示不保存错误信息
mysql> show variables like 'sql_notes';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| sql_notes | ON |
+---------------+-------+
mysql服务器默认将注意级别警告打开,可以通过set sql_notes = 0 ; 将"注意"级别的警告关闭和set sql_notes = 1; 将其打开。
因此,如果max_error_count系统变量设置得过低,以致于有的消息没有被存储,则warning_count值可能比由SHOW WARNINGS显示的消息数目要大。
mysql> set max_error_count=1;
mysql> alter table test modify name char;
Query OK, 3 rows affected, 3 warnings (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 3
mysql> select @@warning_count;
+-----------------+
| @@warning_count |
+-----------------+
| 3 |
+-----------------+
mysql> show warnings;
+---------+------+----------------------------------------+
| Level | Code | Message |
+---------+------+----------------------------------------+
| Warning | 1263 | Data truncated for column 'name' at row 1 |
+---------+------+----------------------------------------+