REPLACE = DELETE(若主鍵/唯一鍵衝突)+ INSERT。
前提:表必須有 PRIMARY KEY 或 UNIQUE 索引,否則退化為普通 INSERT。
若多個唯一索引同時衝突,可能一次 REPLACE 刪除多行舊數據。
1:純插入,無刪除>1:刪除 N 行 + 插入 1 行,總影響行數 = N+1PHP 可用 mysql_affected_rows() 獲取。
需同時具備表的 INSERT 和 DELETE 權限。
REPLACE [LOW_PRIORITY|DELAYED] [INTO] tbl [(col,...)] VALUES (...),(...),...; REPLACE [LOW_PRIORITY|DELAYED] [INTO] tbl SET col=expr, ...; REPLACE [LOW_PRIORITY|DELAYED] [INTO] tbl [(col,...)] SELECT ...;
不能在子查詢中對同一表執行 REPLACE 並同時 SELECT。
「插入或更新」(Upsert)邏輯,如同步外部數據源、去重導入。