首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL UPDATE 與 DELETE 核心操作:WHERE 條件的生死攸關

     編輯:MySQL 資料庫相關知識

核心警示

UPDATE/DELETE 不帶 WHERE 將全表生效,這是生產事故高發區。本文通過圖示與實例,強化條件約束意識,並介紹 NULL 賦值刪除列值、主鍵驗證、預先 SELECT 驗證等最佳實踐。

UPDATE 更新操作

單行精準更新

UPDATE customers 
SET email = 'elmer@fudd.com' 
WHERE cust_id = 10005;

若省略 WHERE,全表 email 均被覆蓋為同一值,災難性後果。

將列值置為 NULL(邏輯刪除列內容)

UPDATE table_name 
SET column_name = NULL 
WHERE condition;

適用於保留行結構但清空某字段場景。

DELETE 刪除操作

精準刪除行

DELETE FROM customers 
WHERE cust_id = 10005;

同理,無 WHERE 將清空全表。

三大防誤操作鐵律

  1. 主鍵為王:WHERE 條件優先使用主鍵或唯一索引,確保單行鎖定
  2. 先 SELECT 後執行:
    -- 驗證影響範圍
    SELECT * FROM customers WHERE cust_id = 10005;
    -- 確認無誤再執行
    DELETE FROM customers WHERE cust_id = 10005;
  3. 事務包裹:關鍵操作放入事務,BEGIN; ... COMMIT/ROLLBACK;,給自己後悔藥

延伸:TRUNCATE vs DELETE

特性DELETETRUNCATE
WHERE 支援是否
觸發器觸發不觸發
自增重置不重置重置
回滾可回滾不可回滾(隱式提交)
速度逐行刪除,較慢元數據操作,極快

清空全表優先 TRUNCATE;帶條件刪除只能 DELETE。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved