MySQL - SHOW WARNINGS 语句
MySQL SHOW WARNINGS 语句
MySQL SHOW WARNINGS 语句用于检索当前会话中执行上一个 MySQL 语句时发生的错误、警告和注释信息。
语法
以下是 SHOW ERRORS 语句的语法 -
SHOW WARNINGS [LIMIT [offset,] row_count] 显示 COUNT(*) 警告
示例
让我们使用 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 | First_Name | Last_Name | Date_Of_Birth | Place_Of_Birth | Country |
---|---|---|---|---|---|
1 | Shikhar | Dhawan | 1981-12-05 | Delhi | India |
2 | Jonathan | Trott | 1981-04-22 | CapeTown | SouthAfrica |
注意 - 请确保禁用严格 SQL 模式或使用 INSERT IGNORE 语句将错误显示为警告。
现在,让我们尝试插入更多包含重复 ID 值、错误表名和错误值数量的行 -
将忽略插入 MyPlayers 值 (2, NULL, 'Sharma', DATE('1987-04-30'), 'Nagpur', 'India');
以下查询检索上述语句生成的警告 -
SHOW WARNINGS;
输出
以下是上述查询的输出 -
Level | Code | Message |
---|---|---|
Warning | 1048 | Column 'First_Name' cannot be null |
Warning | 1062 | Duplicate entry '2' for key 'myplayers.PRIMARY' |
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 查询显示以下输出 -
Level | Code | Message |
---|---|---|
Warning | 1048 | Column 'First_Name' cannot be null |
Warning | 1265 | Data truncated for column 'Place_Of_Birth' at row 1 |
Warning | 1265 | Data truncated for column 'Country' at row 1 |
Warning | 1062 | Duplicate entry '1' for key 'myplayers.PRIMARY' |
您可以使用 LIMIT 语句限制警告,如下所示 -
SHOW WARNINGS LIMIT 2;
输出
执行上述查询后,将生成以下输出 -
Level | Code | Message |
---|---|---|
Warning | 1048 | Column 'First_Name' cannot be null |
Warning | 1265 | Data truncated for column 'Place_Of_Birth' at row 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 |