外键引用数据库中的多个列

尼尔斯·阿卡什(Nirmith Akash)

当我将EER转换为关系模式时,我得到了该表,该表具有如下所示的复合主键,

CREATE TABLE branch
(
    branch_number varchar(20),
    b_code varchar(20),
    name varchar(20),
    address varchar(20),

    --CONSTRAINTS
    CONSTRAINT pk_branch PRIMARY KEY(branch_number,b_code),
    CONSTRAINT fk_branch FOREIGN KEY(b_code) REFERENCES bank(b_code)

)

上面的表是一个弱实体,因此它具有一个键组合作为主键。(由于标识关系)然后,此分支表与下表具有一对多关系

CREATE TABLE account 
(
    account_no varchar(20),
    balance float,
    branch_number varchar(20),
    b_code varchar(20),
    a_code varchar(20),

    --CONSTRAINTS
    CONSTRAINT pk_account PRIMARY KEY(account_no),
    CONSTRAINT fk_account_1 FOREIGN KEY(b_code) REFERENCES branch(b_code),
    CONSTRAINT fk_account_2 FOREIGN KEY(branch_number) REFERENCES branch(branch_number),
    CONSTRAINT fk_account_3 FOREIGN KEY(a_code) REFERENCES account_type(a_code)
)

如何建立这两个表之间的关系?当我有一列引用另外两列时,如何为带有分支的帐户表实现外键?

Bob Jarvis-恢复莫妮卡

fk_account_1当你尝试编译它,因为失败b_code是不是表的主键或唯一键branch同样的问题fk_account_2,因为branch_number它不是主要的或唯一的branch

主键branch是,(branch_number,b_code)所以您的外键应该是

CONSTRAINT FK_ACCOUNT_1
    FOREIGN KEY (BRANCH, B_CODE)
    REFERENCES BRANCH (BRANCH, B_CODE);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章