2012-04-13 48 views
0

我知道如何插入一個查詢恆定值多行:MySQL的:條件INSERT ...選擇多行有常數值

INSERT INTO table 
VALUES 
    (1, 'a', 'x'), 
    (2, 'b', 'y'), 
    (3, 'c', 'z'); 

但我怎麼做到這一點有條件?我想確保只有不存在的*行被插入。是否可以在單個查詢中完成?

* 一排時,其所有列等同於一個我們插入

回答

2

使用INSERT IGNORE INTO,而不是INSERT INTO存在。前者只會插入行,如果沒有違反唯一的關鍵約束。

INSERT IGNORE INTO table 
VALUES 
    (1, 'a', 'x'), 
    (2, 'b', 'y'), 
    (3, 'c', 'z'); 
+0

但IGNORE只會檢查現有**鍵**。幸運的是,這適用於我的設置。但是如果我想要檢查**所有內容**(包括非關鍵列)呢? – mae 2012-04-13 23:31:43