提问人:Pops 提问时间:8/1/2009 最后编辑:Super Kai - Kazuya ItoPops 更新时间:11/15/2023 访问量:121767
如何显示刚刚发生的MySQL警告?
How to show a MySQL warning that just happened?
问:
我只是运行了一个简单的MySQL CREATE TABLE语句,该语句生成了该行
“查询正常,影响 0 行,1 个警告(0.07 秒)。”
不过,它实际上并没有向我展示警告是什么。如何查看刚刚发生的警告的内容?我正在使用 MySQL 5.1,如果它有所作为。我在网上找到的唯一东西是“显示警告”,但这只产生了
“空集(0.00 秒)。”
答:
SHOW WARNINGS
是我所知道的唯一方法,但是您必须在附加了警告的查询后立即运行它。如果您在两者之间运行了任何其他查询,或断开了连接,则将不起作用。SHOW WARNINGS
SHOW WARNINGS 的 MySQL 手册页没有指出任何其他方法,所以我相当确定您坚持使用它。
评论
还可以将命令行设置为始终在使用 \W 的查询后显示警告
您可以使用 \w 再次关闭它们
评论
command-line
mysql
mysql
@HorusKol,你有这方面的文件吗?我找不到。但是我确实发现,根据MySQL手册,命令行选项可以完成这项工作。--show-warnings
评论
MySQL数据库导入数据时,经常会出现警告。
这些警告很容易被忽略。
我突然想看看今天拿到数据时有什么警告。
MySQL view warning 命令
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警告很容易理解,并且在警告消息之后很容易修改表。
上面的所有建议都对我不起作用。我使用了 SHOW WARNINGS\G,它起作用了。
您可以使用 with login 来显示警告,如下所示。*默认情况下,警告处于隐藏状态:--show-warnings
mysql -u john -p --show-warnings
或者,您可以使用 () 或登录后显示警告,如下所示:warnings
WARNINGS
\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
并且,您可以使用 () 或登录后隐藏警告,如下所示:nowarning
NOWARNING
\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 上,您可以设置如下图所示。*我的答案解释了,我的答案解释了在 Windows 上的位置:show-warnings
[mysql]
my.ini
[mysql]
my.ini
# "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
评论
--show-warnings
man mysql
warnings
man mysql