2016-04-19 138 views
0

比方說,我有這個所謂的「字符」簡單的表:製作具有取決於另一列的值的「唯一」值的列

realm_id | character_name | xp 
---------|----------------|---------- 
     1 |  "mike"  | 10 
     1 |  "lara"  | 25 
     2 |  "mike"  | 40 

我想要做的是有獨特名取決於realm_id。因此,例如,雖然有兩個"mikes"不同realm_id s是允許的,它的不允許允許有兩個"mikes"在同一realm_id內。那可能嗎?

+0

在從2008年開始的Sql Server中,您可以使用已過濾的索引,不知道其餘的數據庫引擎 –

+2

您正在使用哪種RDBMS?請參閱http://stackoverflow.com/help/how-to-ask –

+1

創建唯一索引(realm_id,name) –

回答

0

如果您希望對此數據執行SELECT語句,那麼您將會尋找類似的東西(假設最高XP獲勝);

SELECT 
realm_id 
character_name 
MAX(XP) AS XP 
FROM characters 

但是,如果你想表不允許在首位重複那麼你最好看是使德realm_id和character_name複合主鍵。這將首先阻止你的重複,儘管你必須考慮當有人試圖插入重複時會發生什麼,它會引發錯誤。

0

在由realm_id和character_name組成的表上創建主鍵。主鍵將在域和角色的表中實施唯一性。因此,您可以有realm_id = 1,character_name ='Mike'和realm_id = 2,character_name ='Mike',但是如果您嘗試再次插入realm_id = 1和character_name ='Mike',則插入操作將失敗。您的獨特性得到保證。

相關問題