如何确保不重复外键值

时间:2014-06-09 04:29:55

标签: sql sql-server-2008

我对SQL很愚蠢,所以这是一个微不足道的问题。

如果我有这样的表结构。

用户

Id (primary key)

用户配置

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

我已将UserProfile.UserId设置为将其链接到User.Id列的外键。

如何确保人们不会在UserProfile表格中为同一用户输入多行?

我是否在UNIQUE列上设置了UserProfile.UserId约束?这是我能想到的唯一方式。

1 个答案:

答案 0 :(得分:1)

创建唯一约束。此外,假设因为它是一个ID列,您不想允许空值,您也可以修改该列以不接受空值。如果您不想允许空值,则必须在列上使用NOT NULL条件定义alter table。

您可以使用此语法更改userprofile表并添加唯一约束:

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

如果您不想允许空值:

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