MySQL 中,SHOW WARNINGS 语句用于查看最近执行的 SQL 语句产生的警告信息,通常是一些非致命性的错误或问题。

主要用途

  1. 显示警告信息:当 SQL 语句成功执行但存在潜在问题或提醒时,MySQL 会产生警告(Warnings)。
  2. 调试和优化:开发者可以通过 SHOW WARNINGS 查看详细信息,从而更好地理解 SQL 语句的执行结果。

常见场景

  • 数据截断(Truncated Data):插入或更新数据时,字段值超过定义长度,MySQL 会截断数据并生成警告。
  • 数据类型转换(Implicit Conversion):MySQL 自动转换数据类型导致非精确存储。
  • 非唯一索引插入重复值:执行 INSERT IGNORE 或者 INSERT ... ON DUPLICATE KEY UPDATE 时,导致的非阻塞警告。

使用方法

  1. 显示警告
    执行一条会生成警告的 SQL 语句后,运行 SHOW WARNINGSSELECT '123456789' INTO @value; SHOW WARNINGS;
  2. 显示前 n 条警告 SHOW WARNINGS LIMIT 5;
  3. 结合 SHOW COUNT(*) WARNINGS
    查看最近 SQL 产生的警告数量: SHOW COUNT(*) WARNINGS;

结果输出

SHOW WARNINGS 的输出通常包含以下三列:

  • Level:警告级别(Warning、Error、Note)。
  • Code:MySQL 错误代码。
  • Message:详细警告信息。

示例

INSERT INTO test_table (name, age) VALUES ('John', 'not_a_number');
SHOW WARNINGS;

输出

LevelCodeMessage
Warning1366Incorrect integer value: …

总结

SHOW WARNINGS 用于显示 SQL 语句执行后生成的警告信息,帮助开发者发现潜在问题、优化查询或修正数据操作。