SQL:从外键和属性创建主键



我正试图从一个外键创建表的主键以及表本身的一个属性。

CREATE TABLE table (
attribute int,
FOREIGN KEY (foreign_attribute) REFERENCES foreign_table(foreign_attribute), 
PRIMARY KEY (attribute, foreign_attribute)
);

这在某种程度上不起作用,有人能推荐一个替代解决方案并指出上面的错误吗?

附言:绝对初学者不要抨击

将外键列作为复合主键的一部分是可以的,但在任何情况下,您都需要创建该列,然后才能添加FK约束:

CREATE TABLE table (
attribute int,
foreign_attribute int REFERENCES foreign_table(foreign_attribute), 
PRIMARY KEY (attribute, foreign_attribute)
);

或者,如果要选择FK约束的名称:

CREATE TABLE table (
attribute int,
foreign_attribute int, 
PRIMARY KEY (attribute, foreign_attribute),
CONSTRAINT fk_foreign_table FOREIGN KEY(foreign_attribute) REFERENCES foreign_table(foreign_attribute)
);

子列必须具有与父列相同的数据类型和长度——我假设为int。在大多数数据库中,父列在父表中必须是唯一的(或者是主键列(。

相关内容

  • 没有找到相关文章

最新更新