如何在数据库表中强制执行多个唯一字段

时间:2010-03-27 16:13:28

标签: sql sql-server database-design

我有一个名为Cars的表,表的主键是'id'。我还有一个名为'name'的字段。我想确保没有人输入相同的名字两次,即使它不会破坏我的数据库完整性。

这样做的最佳方式是什么?

4 个答案:

答案 0 :(得分:2)

create unique index cars_unique_name on cars(name)

答案 1 :(得分:1)

只需在UNIQUE字段上创建name索引即可。在SQL中它将是这样的:

CREATE UNIQUE INDEX IX_Cars_name 
ON Cars(name);

另一种可能性是创建unique constraint,如下所示:

ALTER TABLE Cars
ADD CONSTRAINT Uqc_Cars_name 
UNIQUE (name)

两者都会做同样的事情。

答案 2 :(得分:0)

您可以在CREATE TABLE命令或ALTER TABLE命令中指定唯一索引约束。

就像

创造桌车(          id INT NOT NOT AUTO_INCREMENT PRIMARY KEY,          name VARCHAR(100)UNIQUE KEY        );

或者只是创建上表

创造桌车(          id INT NOT NOT AUTO_INCREMENT PRIMARY KEY,          名称VARCHAR(100)        ); 然后使用alter table

添加unqiue密钥索引

答案 3 :(得分:0)

如上所述,您可能需要一个唯一索引,但也可以使用唯一约束,在某些情况下可能不需要索引......

CREATE TABLE cars
(
    ID INT NOT NULL IDENTITY(1,1) PRIMARY KEY CLUSTERED,
    NAME NVARCHAR(100) UNIQUE NOT NULL
)

ALTER TABLE cars  
ADD CONSTRAINT UniqueConstraintName UNIQUE (name)