我可以知道我是否可以使用create语句声明属性主&外键?sql create table相同的主键和外键
像:
CREATE TABLE personal_partner (
partner_id NOT NULL PRIMARY KEY FOREIGN KEY REFERENCES partner(partner_id)
)
而且,我一定要在主键添加唯一约束?
谢谢
我可以知道我是否可以使用create语句声明属性主&外键?sql create table相同的主键和外键
像:
CREATE TABLE personal_partner (
partner_id NOT NULL PRIMARY KEY FOREIGN KEY REFERENCES partner(partner_id)
)
而且,我一定要在主键添加唯一约束?
谢谢
是的,我们可以。
创建表的合作伙伴(PARTNER_ID INTEGER NOT NULL PRIMARY KEY)
创建表personal_partner (PARTNER_ID INTEGER NOT NULL主键的外键引用的合作伙伴(PARTNER_ID))
- 您可以创建和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)
)
FKtoPartner仅仅是一个例子FK名。命名FKs被认为是最佳实践,并且对FK名称也有一个标准的命名约定。 – 2014-11-24 11:00:02
只是尝试一下,看看会发生什么 – Pleun 2014-11-24 10:09:23