sql create table相同的主要&外键

时间:2014-11-24 10:01:43

标签: sql database sql-server-2008

我可以知道我是否可以使用create语句来声明属性和主要属性外键?

喜欢:

CREATE TABLE personal_partner (
    partner_id NOT NULL PRIMARY KEY FOREIGN KEY REFERENCES partner(partner_id)
)

另外,我是否必须在主键上添加唯一约束?

由于

2 个答案:

答案 0 :(得分:0)

是的,我们可以。

创建表伙伴(partner_id INTEGER NOT NULL PRIMARY KEY)

创建table personal_partner     (partner_id INTEGER NOT NULL PRIMARY KEY FOREIGN KEY REFERENCES partner(partner_id))

答案 1 :(得分:0)

- 您可以在personal_partner(partner_id)上创建PK和FK - 引用的表\列(伙伴(partner_id))应该有PK或唯一约束 - 主键(PK)由唯一约束+ NOT NULL约束组成,因此您不应该“担心”需要在表personal_partner中添加其他唯一约束,这是在将列定义为PK时自动创建的。
- 以下代码有效,应该是您所需要的:

CREATE TABLE partner(
partner_id INT PRIMARY KEY -- or unique constraint, if this may contain NULLs
)

CREATE TABLE personal_partner (
partner_id INT NOT NULL PRIMARY KEY,
CONSTRAINT FKtoPartner FOREIGN KEY (partner_id) REFERENCES partner(partner_id)
)