我有下表:
Create table [dbo].[Medewerker]
(
[Id] int PRIMARY KEY IDENTITY 91,1 NOT NULL,
[Wachtwoord] varchar(50) NOT NULL,
[Rechten] varchar(100) NOT NULL,
[Gebruikersnaam] varchar(30) UNIQUE NOT NULL
)
我正在努力使其成为底线使得“Gebruikersnaam”列中的每个条目都是唯一的。我做得对吗?你怎么称呼这种类型的功能?
答案 0 :(得分:4)
“Gebruikersnaam”列中的每个条目都是唯一的
是的,这是对的。基本上你所做的只不过是在你的专栏Gebruikersnaam
中添加UNIQUE CONSTRAINT
。
根据评论,是的,最好明确命名您的约束,而不是让DB引擎隐含地指定默认名称
Create table [dbo].[Medewerker]
(
[Id] int PRIMARY KEY IDENTITY 91,1 NOT NULL,
[Wachtwoord] varchar(50) NOT NULL,
[Rechten] varchar(100) NOT NULL,
[Gebruikersnaam] varchar(30) NOT NULL,
CONSTRAINT idx_unique_Gebruikersnaam UNIQUE(Gebruikersnaam) --Here
)
答案 1 :(得分:0)
您已经创建了一个唯一约束,即它所谓的约束 但是,最好为索引和约束命名,也可以为主键命名。请看下面的例子。
您可以为现有表创建一个唯一索引,如
CREATE UNIQUE NONCLUSTERED INDEX idx_Gebruikersnaam
ON dbo.Medewerker(Gebruikersnaam)
表中的创建它看起来像这样
Create table [dbo].[Medewerker]
(
[Id] int IDENTITY 91,1 NOT NULL,
[Wachtwoord] varchar(50) NOT NULL,
[Rechten] varchar(100) NOT NULL,
[Gebruikersnaam] varchar(30) NOT NULL,
constraint PK_MedewerkerId primary key (Id),
constraint idx_Gebruikersnaam unique (Gebruikersnaam)
)
我也会使用nvarchar代替varchar。