我有一个名为Cars的表,并且表的主键是'id'。我也有一个叫'名字'的字段。我想确保没有人进入相同的名字两次,即使它不会打破我的数据库完整性。如何在数据库表中执行多个唯一字段
这样做的最好方法是什么?
我有一个名为Cars的表,并且表的主键是'id'。我也有一个叫'名字'的字段。我想确保没有人进入相同的名字两次,即使它不会打破我的数据库完整性。如何在数据库表中执行多个唯一字段
这样做的最好方法是什么?
create unique index cars_unique_name on cars(name)
只需在name
字段中创建一个UNIQUE
索引。在SQL它会是这样的:
CREATE UNIQUE INDEX IX_Cars_name
ON Cars(name);
另一种可能性是创建一个unique constraint
,像这样:
ALTER TABLE Cars
ADD CONSTRAINT Uqc_Cars_name
UNIQUE (name)
双方将基本上做同样的事情。
您可以在CREATE TABLE命令或ALTER TABLE命令中指定唯一索引约束。
它像
CREATE TABLE CARS( ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 名称VARCHAR(100)UNIQUE KEY );
或刚刚创建上述表
CREATE TABLE CARS( ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 名称VARCHAR(100) ); 和更高版本使用alter table添加独特密钥索引
如上所述,您可能需要唯一索引,但也可以使用唯一约束,而在某些情况下可能不需要索引。
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)