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

n53p2ov0  于 2023-05-16  发布在  Mysql
关注(0)|答案(5)|浏览(122)

我只是运行了一个简单的MySQLCREATETABLE语句,生成了以下行
查询正常,0行受影响,1条警告(0.07秒)。
不过,它并没有告诉我警告是什么。如何查看刚刚发生的警告的内容?我使用MySQL 5.1,如果它有区别的话。我在网上找到的唯一的东西是“显示警告;“但那只产生了
“空组(0.00秒)。”

11dmarpk

11dmarpk1#

SHOW WARNINGS是我所知道的唯一方法,但是您必须在附带警告的查询之后立即运行它。如果您在中间运行了任何其他查询,或者断开了连接,那么SHOW WARNINGS将无法工作。
SHOW WARNINGS的MySQL手册页没有指出任何其他方法,所以我相当肯定您会坚持使用它。

mkshixfv

mkshixfv2#

还可以使用\W将命令行设置为在查询后始终显示警告
您可以使用\w再次关闭它们

2sbarzqh

2sbarzqh3#

@HorusKol,你有这方面的文件吗?我找不到但我确实发现命令行选项--show-warnings可以完成这项工作,根据MySQL manual

vohkndzv

vohkndzv4#

MySQL数据库导入数据时,经常出现警告。
这些警告很容易被忽视。
我突然想看看今天拿到数据时有什么警告。
MySQL视图警告命令

show warnings;

该命令非常简洁,当我检查它时,一般的警告是这样的。
1.

Warning | 1265 | Data truncated for column ‘title’ at row 1265

此警告是字段长度不够,
导入的数据由系统自动裁剪。
2.

| Warning | 1366 | Incorrect string value: ‘\xB5\xDA\xB6\xFE\xBD\xEC...‘ for column ‘Journal title’ at row 1444 |

这是数据的错误字符集。
对于第二个,您需要修改数据库的字符集或导入数据的txt编码格式。
3.

| Warning | 1366 | Incorrect integer value: ‘‘ for column ‘work number’ at row 13 |

这是插入空数据,如果字段允许空值,可以忽略这些警告。4.

| Warning | 1262 | Row 11 was truncated; it contained more data than there were input columns |

这是导入数据的冗余列。
MySQL的警告很容易理解,在警告消息之后修改表也很容易。

wqsoz72f

wqsoz72f5#

上面所有的建议对我都不起作用。我使用了SHOW WARNINGS\G,它起作用了。

相关问题