繁体   English   中英

第一个表中的外键

[英]Foreign key in the first table

我有一个关于外键的问题。

当我想将外键添加到我创建的第二个表的主键的第一个表中时,它是如何工作的?

CREATE TABLE table1
(   
    name_id INT NOT NULL,
    team TEXT REFERENCES table2(team_id),
    PRIMARY KEY(name_id)
);

CREATE TABLE table2
(
    team_id INT NOT NULL,
    teamname TEXT,
    PRIMARY KEY(team_id)
);

如果我尝试上面的代码,我会收到以下错误:

错误:关系“”不存在

提前致谢。

要么先创建第二个表。 或者使用alter table 也就是说,创建没有引用的第一个表,然后执行:

alter table table1 add constraint fk_table1_team
    foreign key (team_id) REFERENCES table2(team_id);

table1的声明将是:

CREATE TABLE table1 (   
    name_id INT NOT NULL,
    team_id INT, 
    PRIMARY KEY(name_id)
);

如果整数可用,表之间的引用应该在主键上,当然不是在字符列上。

这是使用外键创建表的语法:

CREATE TABLE table11
(   
    name_id INT NOT NULL,
    team INT,
    PRIMARY KEY(name_id),
    foreign key(team) references table22(team_id)
);



CREATE TABLE table22
(
    team_id INT NOT NULL,
    teamname TEXT,
    PRIMARY KEY(team_id)
);

但还有另一个问题。 如果子表中的外键不包含相同类型,则它们不能引用父文件夹中的主键。 在你的代码团队是TEXT和 team_id 是INT这不能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM