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

kfgdxczn  于 2023-11-16  发布在  Mysql
关注(0)|答案(6)|浏览(161)

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

yrdbyhpb

yrdbyhpb1#

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

myzjeezk

myzjeezk2#

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

r8uurelv

r8uurelv3#

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

k4emjkb1

k4emjkb14#

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警告很容易理解,在警告消息后修改表也很容易。“

epggiuax

epggiuax5#

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

raogr8fs

raogr8fs6#

您可以使用--show-warnings与登录来显示警告,如下所示。* 默认情况下,警告是隐藏的:

mysql -u john -p --show-warnings

字符串
或者,您可以在登录后使用warningsWARNINGS)或\W显示警告,如下所示:

mysql> warnings
Show warnings enabled.


或者:

mysql> WARNINGS
Show warnings enabled.


或者:

mysql> \W
Show warnings enabled.


然后,警告如下所示:

mysql> SELECT 1/0;
+------+
| 1/0  |
+------+
| NULL |
+------+
1 row in set, 1 warning (0.00 sec)

Warning (Code 1365): Division by 0


并且,您可以在登录后使用nowarningNOWARNING)或\w来隐藏警告,如下所示:

mysql> nowarning
Show warnings disabled.


或者:

mysql> NOWARNING
Show warnings disabled.


或者:

mysql> \w
Show warnings disabled.


然后,一个警告被隐藏如下:

mysql> SELECT 1/0; 
+------+
| 1/0  |
+------+
| NULL |
+------+
1 row in set, 1 warning (0.00 sec)


或者在Windows上,您可以在my.ini中的[mysql]下设置show-warnings,如下所示。* 我的答案解释了[mysql],我的答案解释了my.ini在Windows上的位置:

# "my.ini"

[mysql]
...
show-warnings


然后,您可以通过将my.ini的位置设置为--defaults-file=--defaults-extra-file=来登录,以显示警告,如下所示。* --defaults-file=--defaults-extra-file=必须是第一个选项,否则会出现错误:

mysql --defaults-file='C:\ProgramData\MySQL\MySQL Server 8.0\my.ini' -u john -p


或者:

mysql --defaults-extra-file='C:\ProgramData\MySQL\MySQL Server 8.0\my.ini' -u john -p

相关问题