我刚刚运行了一个简单的 MySQL CREATE TABLE 语句,生成了该行
“查询正常,0 行受影响,1 条警告(0.07 秒)。”
不过,它实际上并没有告诉我警告是什么。如何查看刚刚发生的警告内容?我正在使用 MySQL 5.1,如果它有什么区别的话。我在网上找到的唯一内容是“显示警告;”但这只产生了
“空集(0.00 秒)。”
SHOW WARNINGS
是我所知道的唯一方法,但是您必须在附加警告的查询之后立即运行它。如果您在其间运行任何其他查询,或者断开连接,则 SHOW WARNINGS
将不起作用。
MySQL 手册页中的 SHOW WARNINGS 没有指出任何其他方法,所以我相当确定你会坚持使用它。
您还可以使用 \W 将命令行设置为在查询后始终显示警告
您可以使用 \w
再次关闭它们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警告很容易理解,警告信息后很容易修改表。
以上所有建议对我来说都不起作用。我使用了 SHOW WARNINGS\G 并且它有效。
您可以启用
show-warnings
以在登录时显示带有 --show-warnings
的警告,如下所示。 *默认情况下,show-warnings
处于禁用状态:
mysql -u john -p --show-warnings
或者,您可以启用
show-warnings
在登录后显示警告,如下所示:
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
并且,您可以禁用
show-warnings
以在登录后隐藏警告,如下所示:
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)