2014-06-09 38 views
0

我對SQL很愚蠢,所以這裏是一個小問題。如何確保外鍵值不重複

如果我有這樣的表結構。

用戶

Id (primary key) 

用戶配置

UserId (foreign key, primary key in user table) 
OtherStuff 

我已經設置了UserProfile.UserId爲外鍵將其鏈接到User.Id列。

如何確保人們不會爲UserProfile表中的同一用戶輸入多行?

我是否在UserProfile.UserId列上設置了UNIQUE約束?這是我能想到的唯一方法。

+1

看來你已經得出了正確的答案。那麼你爲什麼要問? –

+1

@MattBall - 也許驗證? – STLDeveloper

+0

我不知道這是否正確。感謝您的確認。 –

回答

1

創建一個唯一約束。另外,假設它是一個ID列,你不想允許空值,你也可以修改列不接受空值。如果您不想允許空值,則必須在列上定義更改表的NOT NULL條件。

你可以使用這個語法來改變你的USERPROFILE表並添加一個唯一約束:

ALTER TABLE userprofile 
ADD CONSTRAINT <constraint_name> UNIQUE (userid); 

如果您不希望允許空值:

ALTER TABLE [Table] 
Alter COLUMN [Column] [Data Type] not null;