【发布时间】:2019-07-22 13:35:53
【问题描述】:
我想在 mssql 中创建一个复合键。例如{地址(城市,州,邮政编码)}。
我是 sql 新手。我想知道是否有在表中创建复合键的确切语法。我见过一个类似的问题,答案是创建列并向这些列添加唯一约束。但是,我不知道这是否解决了我的问题。
代码可能是这样的:
CREATE TABLE Employee(
SSN INT PRIMARY KEY NOT NULL,
FirstName NVARCHAR(50) NOT NULL,
City NVARCHAR(50) NOT NULL,
State NVARCHAR(50) NOT NULL,
ZipCode INT NOT NULL
);
我想这样的地址使用 3 个不同的键是没有问题的。但是,我想知道是否有更好的解决方案。
提前致谢。
【问题讨论】:
-
复合键是什么? PS SSN 作为密钥可能会导致问题。意味着输入数据的人必须先知道它。此外,如果出现错误并且他们想要对其进行编辑,则可能会导致任何引用的表出现问题。
-
@TonyHopkinson 我举了一个例子;复合键将在这种情况下得到解决。也让 SSN 成为 pk 不是这里的主要内容,这只是一个例子。我要问的是如何使地址成为由城市、州和邮政编码组成的复合键
标签: sql composite-key