SQL多个唯一列

时间:2014-11-23 17:52:34

标签: sql constraints unique

是否可以在多列上使用unique?

喜欢:

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

既独特又

这一定是可能的

但是:

  user_vote user_id
     1         2
     1         2 

这一定不可能

3 个答案:

答案 0 :(得分:2)

您可以在列的组合上添加唯一约束:

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

答案 1 :(得分:2)

MySQL / SQL Server / Oracle / MS Access:

 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

非常有用

答案 2 :(得分:1)

您需要定义复合唯一约束。

SQL Server, 在SQL Server中执行此操作的一种方法是添加UNIQUE 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)