2009-03-31

REPLACE INTO 和 INSERT INTO 的區别[MySQL]

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

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

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

REPLACE Syntax:
REPLACE [LOW_PRIORITY | DELAYED]
    [INTO] tbl_name [(col_name,...)]
    {VALUES | VALUE} ({expr | DEFAULT},...),(...),...

-- 或:

REPLACE [LOW_PRIORITY | DELAYED]
    [INTO] tbl_name
    SET col_name={expr | DEFAULT}, ...

-- 或:

REPLACE [LOW_PRIORITY | DELAYED]
    [INTO] tbl_name [(col_name,...)]
    SELECT ...


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

0 回應: