mysql show-warnings_MySQL-show warnings

很多时候,我们在执行命令行执行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 |

+---------+------+----------------------------------------+

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值