2009-03-31 22:43

REPLACE INTO 和 INSERT INTO 的區别[MySQL]

REPLACE 與INSERT 在 Syntax 及功能上都很類似
在插入資料遇到 PRIMARY KEY 或 UNIQUE KEY 碰撞時
REPLACE 會將原本的資料刪除再執行新增的動作

這裡特別要注意的是會將資料刪除
並不只是使用複寫方式去處理的

利用 REPLACE for SELECT 來處理資料真的很方便
不必擔心資料碰撞的問題
但請記得 REPLACE 的特性
有時候事情不是想像中那麼快樂的

REPLACE Syntax:
  1. REPLACE [LOW_PRIORITY | DELAYED] 
  2.    [INTO] tbl_name [(col_name,...)] 
  3.    {VALUES | VALUE} ({expr | DEFAULT},...),(...),... 
  4.  
  5. -- 或: 
  6.  
  7. REPLACE [LOW_PRIORITY | DELAYED] 
  8.    [INTO] tbl_name 
  9.    SET col_name={expr | DEFAULT}, ... 
  10.  
  11. -- 或: 
  12.  
  13. REPLACE [LOW_PRIORITY | DELAYED] 
  14.    [INTO] tbl_name [(col_name,...)] 
  15.    SELECT ... 


參考來源:
MySQL Replace INTO的使用
MySQL 5.0 REPLACE Syntax

0 回應: