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

我只是运行了一个简单的 MySQLCREATETABLE 语句,生成了这一行

“查询正常,0行受影响,1个警告(0.07秒)。”

但它并没有告诉我警告是什么。如何查看刚刚发生的警告的内容?我用的是 MySQL 5.1,如果有区别的话。我在网上找到的唯一的东西是“显示警告;”但这只产生

空集(0.00秒)

114390 次浏览

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

显示警告的 MySQL 手册页没有指明任何其他方法,所以我相当肯定您已经受够了。

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

你可以用 w 把它们关掉

@ HorusKol 你有相关文件吗?我找不到。但是我发现,根据 MySQL 手册,命令行选项 --show-warnings将完成这项工作。

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