MySQL - SHOW WARNINGS 语句



MySQL SHOW WARNINGS 语句

MySQL SHOW WARNINGS 语句用于检索当前会话中先前 MySQL 语句执行期间发生的错误、警告和注释信息。

语法

以下是 SHOW ERRORS 语句的语法:

SHOW WARNINGS [LIMIT [offset,] row_count]
SHOW COUNT(*) WARNINGS

示例

让我们使用 CREATE 语句在 MySQL 数据库中创建一个名为 MyPlayers 的表,如下所示:

CREATE TABLE MyPlayers(
   ID INT,
   First_Name VARCHAR(255) NOT NULL,
   Last_Name VARCHAR(255) NOT NULL,
   Date_Of_Birth date,
   Place_Of_Birth VARCHAR(15),
   Country VARCHAR(15),
   PRIMARY KEY (ID)
);

现在,我们将使用 INSERT 语句在 MyPlayers 表中插入一些记录:

Insert into MyPlayers values
(1, 'Shikhar', 'Dhawan', DATE('1981-12-05'), 'Delhi', 'India'),
(2, 'Jonathan', 'Trott', DATE('1981-04-22'), 'CapeTown', 'SouthAfrica');

如果验证 MyPlayers 表的内容,您可以观察到创建的记录如下:

select * from MyPlayers;

输出

查询执行后,将显示以下输出:

ID 姓名 姓氏 出生日期 出生地 国家
1 Shikhar Dhawan 1981-12-05 德里 印度
2 Jonathan Trott 1981-04-22 开普敦 南非

注意 - 请确保禁用严格 SQL 模式或使用 INSERT IGNORE 语句将错误显示为警告。

现在,让我们尝试插入更多具有重复 ID 值、错误表名和错误值数量的行:

Insert ignore into MyPlayers values
(2, NULL, 'Sharma', DATE('1987-04-30'), 'Nagpur', 'India');

以下查询检索上述语句生成的警告:

SHOW WARNINGS;

输出

以下是上述查询的输出:

级别 代码 信息
警告 1048 列“姓名”不能为 NULL
警告 1062 键“myplayers.PRIMARY”的重复条目“2”

LIMIT

您可以使用 LIMIT 子句将错误数量限制到一个偏移量:

示例

以下 INSERT 语句尝试将记录插入表MyPlayers

Insert ignore into MyPlayers values
(1, NULL, 'Sangakkara', '1977-10-27', 'Long Name For Place Of Birth', 
'Long Name For Country');

以下语句显示上述语句生成的警告:

SHOW WARNINGS;

输出

上述 mysql 查询显示以下输出:

级别 代码 信息
警告 1048 列“姓名”不能为 NULL
警告 1265 第 1 行的列“出生地”数据被截断
警告 1265 第 1 行的列“国家”数据被截断
警告 1062 键“myplayers.PRIMARY”的重复条目“1”

您可以使用 LIMIT 语句限制警告,如下所示:

SHOW WARNINGS LIMIT 2;

输出

执行上述查询后,它将生成以下输出:

级别 代码 信息
警告 1048 列“姓名”不能为 NULL
警告 1265 第 1 行的列“出生地”数据被截断

错误计数

您可以使用 COUNT(*) 或 @@error_count; 变量来计算错误数量。

示例

以下查询尝试在上面创建的 MyPlayers 表中插入记录。

Insert ignore into MyPlayers values
(1, NULL, NULL, DATE('1977-10-27'), 'Matale', 'Long Name For Country');

您可以使用 SHOW ERRORS 查询获取上述语句生成的错误数量,如下所示:

SHOW COUNT(*) WARNINGS;

输出

上述查询显示以下输出:

@@session.warning_count
4
广告
© . All rights reserved.