如何显示刚刚发生的MySQL警告?


160

我只是运行了一个简单的MySQL CREATE TABLE语句,该语句产生了这一行

“查询确定,受影响的行为0,警告为1(0.07秒)。”

但是,它实际上并没有告诉我警告是什么。您如何查看刚刚发生的警告的内容?我正在使用MySQL 5.1,如果有帮助的话。我在网上唯一发现的是“ SHOW WARNINGS;但这只会产生

“空集(0.00秒)。”


1
正如其他人指出的,对于交互式mysql,您可以(1.)使用--show-warnings(请参阅man mysql)或(2. )启动交互式会话,如果您在现有的交互式会话中,则可以使用warnings(参见man mysql)启用相同的行为。
Trevor Boyd Smith

Answers:


200

SHOW WARNINGS是我知道的唯一方法,但是必须在附加了警告的查询后立即运行它。如果您在两者之间运行任何其他查询,或者断开了连接,SHOW WARNINGS则将无法使用。

用于SHOW WARNINGS的MySQL手册页没有指出任何其他方法,因此,我可以肯定地说,您会坚持使用它。


这帮助我- 但你必须有警告,连接到它是一个查询之后立即运行
ASGS

98

您还可以将命令行设置为在使用\ W查询后始终显示警告

您可以使用\ w重新关闭它们


3
这对我来说是完美的。在脚本的顶部添加“ \ W”,我们一切顺利!
马特·克莱因

1
它仍然存在:dev.mysql.com/doc/refman/5.7/en/mysql-commands.html,但是您可能没有使用command-line mysql客户端。它仅适用于mysql,不适用于MySQL库。
伊凡(Yvan)

有没有办法从.my.cnf文件设置此标志?
StR

22

@HorusKol,您有相关的文档吗?我找不到。但是我确实发现--show-warnings,根据MySQL手册,命令行选项可以完成这项工作。


6
如果你做\?在MySQL帮助的命令行中,您可以看到\ w(警告关闭)和\ W(警告打开)的两个选项-这可能取决于版本,但是我很确定这一直在MySQL 5中。
HorusKol 2011年

@HorusKol,非常感谢您回来并回答我可怕的评论。(我是新来的,没有更好的消息!)
流行
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.