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
廣告