萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL UPDATE 與 DELETE 操作實戰:WHERE 條件限制與安全習慣

UPDATE 更新

-- 僅更新 id=10005 的 email
UPDATE customers SET email='elmer@fudd.com' WHERE cust_id=10005;

警告:省略 WHERE 將更新全表所有列,造成災難性資料覆蓋。

清空欄位值

UPDATE customers SET email=NULL WHERE cust_id=10005;

DELETE 刪除

DELETE FROM customers WHERE cust_id=10005;

警告:DELETE FROM customers; (無 WHERE) 會清空全表。

安全操作習慣 (必養成)

  1. 先 SELECT 驗證:SELECT * FROM customers WHERE cust_id=10005; 確認目標列無誤。
  2. 再執行 UPDATE/DELETE。
  3. 生產環境務必開啟事務:
    START TRANSACTION;
    UPDATE ... WHERE ...;
    -- 確認筆數 ROW_COUNT()
    COMMIT; -- 或 ROLLBACK
  4. 主鍵 (cust_id) 是精準定位的關鍵,設計表時務必定義 PK。

TRUNCATE vs DELETE 回顧

  • TRUNCATE:DDL、不可 Rollback、重置自增 ID、速度極快、不觸發 Trigger。
  • DELETE:DML、可 Rollback、保留自增 ID、觸發 Trigger、逐列記錄 Binlog。
copyright © 萬盛學電腦網 all rights reserved