我有由三列的(簡化)表:SQL - 如何應用「半獨特」約束?
id INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
foreignID INT NOT NULL,
name VARCHAR NOT NULL
基本上,我想補充的限制(在數據庫級別上,而不是在應用程序級),其中只可以爲一個獨特的「名稱'存在於每個foreignID。例如,給定的數據(ID,foreignid,名):
1,1,Name1
2,1,Name2
3,1,Name3
4,2,Name1
5,2,Name2
我想,如果用戶試圖插入另一個「NAME3」 foreignId 1下,如果用戶試圖插入'約束失敗,但成功Name3'在foreignId 2下。由於這個原因,我不能簡單地將整個列設置爲UNIQUE。
我很難想出一個SQL表達式來實現這一點,任何人都可以幫助我嗎?
感謝
嘿,多數民衆贊成很酷,我不知道你能做到這一點!謝謝! – 2010-04-20 01:20:58