簡體   English   中英

在SQL中使用唯一條目列創建表

[英]Creating a table in SQL with column of unique entries

我有下表:

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”列中的每個條目都是唯一的。 我做的對嗎? 您如何稱呼這種功能?

“ Gebruikersnaam”列中的每個條目都是唯一的

是的這是對的。 本質上,您所做的不過是在您的專欄Gebruikersnaam添加UNIQUE CONSTRAINT Gebruikersnaam

每條評論,是的,最好是顯式地命名約束,而不是讓數據庫引擎隱式分配默認名稱,例如

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
)

您已經創建了一個唯一的約束,即所謂的約束。
但是,總是最好為索引和約束命名,也可以給主鍵命名。 看下面的例子。

您可以像這樣為現有表創建唯一索引

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。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM