2013-05-12 48 views
0

假設我有一個表keywords(keyid, keyword),其中keyidprimary keykeywordvarcharunique如何忽略已存在的唯一值的插入?

我如何可以插入不存在的價值,而忽略已經存在於表中的值,而得到一個錯誤?例如我插入a, b, c, d。然後我插入c, d, e, f。它應該忽略c和d,並插入e和f。

+3

通過'INSERT INTO忽略...'http://dev.mysql.com/doc/refman/5.5/en/insert.html或通過'ON採取不同的行動DUPLICATE KEY ...' – 2013-05-12 16:05:19

+1

[「INSERT IGNORE」vs「INSERT ... ON DUPLICATE KEY UPDATE」]的可能重複(http://stackoverflow.com/questions/548541/insert-ignore-vs-insert-on-重複鍵更新) – 2013-05-12 16:07:05

回答

0

簡單地使用ON DUPLICATE KEY,例如,

INSERT INTO keywords (keyid, keyword) 
    VALUES (100, 'a keyword') 
     ON DUPLICATE KEY UPDATE keyid = keyid; 

這樣的替代UPDATE被執行,如果keyid已經存在。

乾杯!

0

您可以使用ON DUPLICATE KEY UPDATE函數。文檔here

INSERT INTO table (a,b,c) VALUES (1,2,3) 
ON DUPLICATE KEY UPDATE c=c+1;