2014-11-24 43 views
0

我可以知道我是否可以使用create语句声明属性主&外键?sql create table相同的主键和外键

像:

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

而且,我一定要在主键添加唯一约束?

谢谢

+0

只是尝试一下,看看会发生什么 – Pleun 2014-11-24 10:09:23

回答

0

是的,我们可以。

创建表的合作伙伴(PARTNER_ID INTEGER NOT NULL PRIMARY KEY)

创建表personal_partner (PARTNER_ID INTEGER NOT NULL主键的外键引用的合作伙伴(PARTNER_ID))

0

- 您可以创建和PK FK on personal_partner(partner_id)
- 对引用的表\列(partner(partner_id))应该有PK或Unique约束。
- 主键(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) 
) 
+0

FKtoPartner仅仅是一个例子FK名。命名FKs被认为是最佳实践,并且对FK名称也有一个标准的命名约定。 – 2014-11-24 11:00:02