在 MySQL 資料庫操作中,SHOW WARNINGS 是一個非常實用的診斷指令,它能夠顯示最近一條 SQL 語句執行過程中產生的錯誤、警告以及注意事項。這對於除錯複雜查詢、資料匯入或結構變更操作至關重要。
SHOW WARNINGS;
也可以搭配 LIMIT 限制顯示筆數:
SHOW WARNINGS LIMIT 5;
ALTER TABLE、CREATE INDEX 等結構變更,可能產生資料截斷、字元集轉換等警告。INSERT、UPDATE、DELETE 可能觸發嚴格模式下的資料截斷、外鍵約束警告等。LOAD DATA INFILE 時,可快速發現格式不符、欄位數量不匹配等問題。| 欄位 | 說明 |
|---|---|
| Level | 警告等級:Error、Warning、Note |
| Code | MySQL 內部錯誤代碼 |
| Message | 詳細的警告描述訊息 |
假設我們建立一個表並嘗試插入超長字串:
CREATE TABLE test_warn (col1 VARCHAR(10));
INSERT INTO test_warn VALUES ('這個字串超過十個字元長度');
執行 SHOW WARNINGS; 將顯示:
+---------+------+-------------------------------------------+
| Level | Code | Message |
+---------+------+-------------------------------------------+
| Warning | 1265 | Data truncated for column 'col1' at row 1 |
+---------+------+-------------------------------------------+
STRICT_TRANS_TABLES)下,警告可能升級為錯誤導致語句失敗。SHOW WARNINGS 並記錄到日誌,提升系統可觀測性。SHOW ERRORS 僅顯示錯誤等級,而 SHOW WARNINGS 涵蓋所有等級,資訊更完整。
善用 SHOW WARNINGS 能讓資料庫開發者在問題擴大前及早發現潛在風險,是資料庫維運與開發除錯的必備工具之一。