2011-08-23 125 views
1

在批量插入上,如何在只更新另一個鍵'another_unique_id'的條目時忽略主鍵'id'的重複鍵更新?MySQL批量插入(忽略主鍵ID,但重複更新另一個鍵)

INSERT INTO 
    some_table (`id`, `another_unique_id`, `raw_data) 
    VALUES  (5 , 'ABCDEFG', 'blah') 
ON DUPLICATE KEY UPDATE ...? 

例如 - 如果有與ID的記錄:5,我不想更新。我只需插入一條新記錄。

如果有一個與在「another_unique_id」田「ABCDEFG」的記錄,那麼我想更新進入「嗒嗒」

回答

1

我想你應該通過

INSERT INTO 
some_table (`id`, `another_unique_id`, `raw_data) 
VALUES  (NULL , 'ABCDEFG', 'blah') 
ON DUPLICATE KEY UPDATE ...? 

否則無厘頭

1

至少在MySQL中,你可以使用:

INSERT IGNORE INTO 
some_table (`id`, `another_unique_id`, `raw_data`) 
VALUES  (5 , 'ABCDEFG', 'blah') 

如果一個字段w ^如果存在id 5,它將與更新 一樣,並且如果它不存在,它將執行與常規插入相同的操作。

+0

OP表示,如果ID 5已經存在,他希望'INSERT',而不是'UPDATE'。我認爲你的想法正好相反。 – Pondlife