2014年7月24日 星期四

[MySQL]INSERT 時判斷資料表內是否有重複的主鍵

當使用 INSERT INTO 新增一筆資料時,可能會發生有些資料需要新增,有些是需要修改,這時候不可能先撈出資料之後再判斷是否已經有重複的資料了。

這時候 MySQL 可以在 SQL 的最後加上 ON DUPLICATE KEY

INSERT INTO [table_name] (
    [col_name]...
) VALUES (
    [expr | value]...
) 
ON DUPLICATE KEY UPDATE col_name = [expr | value]

當資料表中已經有重複的資料時 MySQL 會執行 UPDATE 的動作而不是 INSERT。


另外一個與它相反的是 IGNORE

INSERT IGNORE INTO [table_name] (
    [col_name]...
) VALUES (
    [expr | value]...
)

存在重複的資料時 MySQL 會自動略過 INSERT 的動作,反之則加進資料表中。


資料來源:MySQL insert時判斷資料表內是否有重複的主鍵

沒有留言:

張貼留言