首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL ON DUPLICATE KEY UPDATE 避免重複插入實戰

     編輯:MySQL 綜合教學

單條 SQL 實現「不存在插入,存在更新」

INSERT ... ON DUPLICATE KEY UPDATE 針對主鍵或唯一鍵衝突時自動轉更新,省去「先查後決定」兩條 SQL 往返。

實戰範例

-- 統計表:日期+類型+ID 唯一,累加瀏覽數
INSERT INTO osc_visit_stats(stat_date, type, id, view_count)
VALUES (?, ?, ?, ?)
ON DUPLICATE KEY UPDATE view_count = view_count + ?;

-- 空間訪問記錄:space+user 唯一,更新計數、IP、時間
INSERT INTO osc_space_visit_records(space, user, visit_count, ip, visit_time)
VALUES (?, ?, ?, ?, ?)
ON DUPLICATE KEY UPDATE visit_count = visit_count + 1, ip = ?, visit_time = NOW();

適用場景

  • 計數器類:瀏覽數、下載數、點讚數
  • 最新狀態記錄:最後登入 IP/時間、最新設定值
  • 任何具備唯一約束的「增量更新」業務

前提:目標表必須有 PRIMARY KEY 或 UNIQUE KEY,否則無法觸發重複鍵判斷。

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