2014-11-23 41 views
1

可以在多個列上使用唯一嗎?SQL多個唯一列

,如:

user_vote user_id 
------------------ 
     1   1 
     1   2 
     2   1 

既獨特

這必須是可能的

但是:

user_vote user_id 
    1   2 
    1   2 

這必須是不可能的

+0

只要定義兩列以上的**唯一約束** ....應該在支持SQL數據庫的任何可能,因爲它的查詢語言... – 2014-11-23 17:54:26

+0

是的,你可以在任何數據庫中 – 2014-11-23 18:03:35

回答

2

可以添加的uniq對列組合的約束:

ALTER TABLE my_table 
ADD CONSTRAINT my_table_uq UNIQUE (user_vote, user_id) 
1

您需要定義複合唯一約束。

SQL Server中, 一分做就是在SQL Server的方式是加入了獨特的INDEX

ALTER TABLE table_name ADD UNIQUE INDEX (User_Vote, User_Id); 

在Oracle中,

ALTER TABLE table_name 
ADD CONSTRAINT uc_1 UNIQUE (User_Vote, User_Id) 
3

的MySQL/SQL服務器/甲骨文/ MS訪問:

CREATE TABLE uservotetable 
(
    user_vote int NOT NULL, 
    user_id int NOT NULL, 
CONSTRAINT uservote UNIQUE (user_vote ,user_id) 
); 

如果你之前創建了你的餐桌..然後你可以我們ËALTER

ALTER TABLE uservotetable 
    ADD CONSTRAINT uservote UNIQUE (user_vote ,user_id) 

這可能對您有用sql_unique