[英]sql create table same primary & foreign key
Can i know if i can use a create statement to declare an attribute both primary & foreign key? 我可以知道是否可以使用create语句来声明主键和外键的属性吗?
Like: 喜欢:
CREATE TABLE personal_partner (
partner_id NOT NULL PRIMARY KEY FOREIGN KEY REFERENCES partner(partner_id)
)
Also, do i have to add a unique constraint on a primary key? 另外,我是否必须在主键上添加唯一约束?
Thanks 谢谢
Yes we can. 我们可以。
create table partner ( partner_id INTEGER NOT NULL PRIMARY KEY) 创建表伙伴(partner_id INTEGER NOT NULL PRIMARY KEY)
create table personal_partner ( partner_id INTEGER NOT NULL PRIMARY KEY FOREIGN KEY REFERENCES partner(partner_id)) 创建表personal_partner(partner_id INTEGER NOT NULL主键外键引用partner(partner_id))
-- You can create both PK and FK on personal_partner (partner_id) -您可以在personal_partner(partner_id)上创建PK和FK
-- There should be a PK or Unique constraint on the referenced table\\column (partner(partner_id)). -在引用的表\\列(partner(partner_id))上应该有PK或唯一约束。
-- The Primary Key (PK) consists of an Unique Constraint + NOT NULL constraint therefore you shouldn't "worry" about the need to add other unique constraint in table personal_partner, that is automatically created when defining column(s) as PK. -主键(PK)由唯一约束+ NOT NULL约束组成,因此您不必“担心”需要在表personal_partner中添加其他唯一约束,该约束是在将列定义为PK时自动创建的。
-- The below code works and should be what you need: -以下代码有效,应满足您的需要:
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)
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.