假設我有一個表keywords(keyid, keyword)
,其中keyid
爲primary key
和keyword
爲varchar
和unique
。如何忽略已存在的唯一值的插入?
我如何可以插入不存在的價值,而忽略已經存在於表中的值,而得到一個錯誤?例如我插入a, b, c, d
。然後我插入c, d, e, f
。它應該忽略c和d,並插入e和f。
假設我有一個表keywords(keyid, keyword)
,其中keyid
爲primary key
和keyword
爲varchar
和unique
。如何忽略已存在的唯一值的插入?
我如何可以插入不存在的價值,而忽略已經存在於表中的值,而得到一個錯誤?例如我插入a, b, c, d
。然後我插入c, d, e, f
。它應該忽略c和d,並插入e和f。
簡單地使用ON DUPLICATE KEY
,例如,
INSERT INTO keywords (keyid, keyword)
VALUES (100, 'a keyword')
ON DUPLICATE KEY UPDATE keyid = keyid;
這樣的替代UPDATE
被執行,如果keyid
已經存在。
乾杯!
您可以使用ON DUPLICATE KEY UPDATE
函數。文檔here
例
INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;
通過'INSERT INTO忽略...'http://dev.mysql.com/doc/refman/5.5/en/insert.html或通過'ON採取不同的行動DUPLICATE KEY ...' – 2013-05-12 16:05:19
[「INSERT IGNORE」vs「INSERT ... ON DUPLICATE KEY UPDATE」]的可能重複(http://stackoverflow.com/questions/548541/insert-ignore-vs-insert-on-重複鍵更新) – 2013-05-12 16:07:05