SHOW WARNINGS

SHOW WARNINGS 语句用于显示当前客户端连接中已执行语句的报错列表。与在 MySQL 中一样,sql_mode 极大地影响哪些语句会导致错误与警告。

语法图

ShowStmt:

ShowStmt

ShowTargetFilterable:

ShowTargetFilterable

示例

  1. mysql> CREATE TABLE t1 (a INT UNSIGNED);
  2. Query OK, 0 rows affected (0.11 sec)
  3. mysql> INSERT INTO t1 VALUES (0);
  4. Query OK, 1 row affected (0.02 sec)
  5. mysql> SELECT 1/a FROM t1;
  6. +------+
  7. | 1/a |
  8. +------+
  9. | NULL |
  10. +------+
  11. 1 row in set, 1 warning (0.00 sec)
  12. mysql> SHOW WARNINGS;
  13. +---------+------+---------------+
  14. | Level | Code | Message |
  15. +---------+------+---------------+
  16. | Warning | 1365 | Division by 0 |
  17. +---------+------+---------------+
  18. 1 row in set (0.00 sec)
  19. mysql> INSERT INTO t1 VALUES (-1);
  20. ERROR 1264 (22003): Out of range value for column 'a' at row 1
  21. mysql> SELECT * FROM t1;
  22. +------+
  23. | a |
  24. +------+
  25. | 0 |
  26. +------+
  27. 1 row in set (0.00 sec)
  28. mysql> SET sql_mode='';
  29. Query OK, 0 rows affected (0.00 sec)
  30. mysql> INSERT INTO t1 VALUES (-1);
  31. Query OK, 1 row affected, 1 warning (0.01 sec)
  32. mysql> SHOW WARNINGS;
  33. +---------+------+---------------------------+
  34. | Level | Code | Message |
  35. +---------+------+---------------------------+
  36. | Warning | 1690 | constant -1 overflows int |
  37. +---------+------+---------------------------+
  38. 1 row in set (0.00 sec)
  39. mysql> SELECT * FROM t1;
  40. +------+
  41. | a |
  42. +------+
  43. | 0 |
  44. | 0 |
  45. +------+
  46. 2 rows in set (0.00 sec)

MySQL 兼容性

SHOW WARNINGS 语句与 MySQL 完全兼容。如有任何兼容性差异,请在 GitHub 上提交 issue

另请参阅