2014-11-23 39 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