2013-04-05 40 views
0

我有以下結構Mysql的條件刀片(隨着組合主鍵)

id -- auto increment 
name -- unique 
group -- integer 
Primary key(name,group) 

我不想的元件用相同的名稱和組值添加表。

(i.e ("test",1) and ("test",1) should not be inserted.... and 
     ("test",1),("test",2) can be inserted). 

我想,如果不存在插入值。我檢查了Link

使用上面的鏈接可以執行操作,但問題是它只檢查名稱作爲不與組合組合的鍵(即插入值(「test」,1)和(「test」, 2)沒有發生)

我該怎麼做。

回答

0

我想用的名字列獨特的問題,請刪除在名稱列唯一約束,並嘗試INSERT IGNORE INTO yourTable(name,group)values("test",2)

+0

是的,你是對的,刪除唯一密鑰後,一切正常。謝謝你有時間回答我。 – Aravind 2013-04-05 04:54:23

0

如果你的主鍵是name複合和group

你可以做INSERT IGNORE

INSERT IGNORE INTO yourTable 
SET name = 'test', 
    group = 1; 

只要他們兩人都是你的主鍵的一部分,這應該檢查他們的組合

+0

我已經試過了。它只檢查名稱而不是組...(即插入(測試,1),它已經存在在表中它工作正常(沒有插入到表中)...但在給(測試,2)這是一個與之前不同的值不會被插入) – Aravind 2013-04-05 04:42:04

+0

然後,您的主鍵可能不是這兩個字段的組合。因此,這將反對數據庫邏輯繼續這樣做,即使他們是主要的 – 2013-04-05 04:43:58