此列列表没有匹配的唯一键或主键。我不确定如何针对我的情况解决此问题

问题描述 投票:0回答:1

我一直在尝试在数据库中创建此表。我们被告知要使用Oracle-Apex创建数据库。因此,我不断收到无法解决的错误:

“此错误”

如果删除代码的最后一行,它将创建正确的表而没有任何错误。这是此处引用的其他表的屏幕截图:

公司表

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS81cVlwdy5wbmcifQ==” alt =“公司表”>

分支表

“分支表”

IDK,如果这是一个菜鸟的错误,我只花了一个小时就学会了apex / sql,然后开始制作数据库。感谢你们对我的帮助! :)

sql apex oracle-apex-5 oracle-apex-5.1
1个回答
0
投票

外键引用的列在源表中必须具有唯一索引(或者它们必须是该表的主键)。您的代码由于以下外键声明而失败,其中目标不是唯一的:

foreign key (BranchNo) references Branch(BranchNo)

[这里,我认为您想要一个复合外键,它引用Branch的主键而不是两个不同的键。 Branch(CCode)已经引用了Company(CCode),因此无需将该关系放在Equipment表中。

create table Equipment(
    CCode int,
    BranchNo int,
    EquipNo it,
    Description varchar2(50),
    NumberOfEquip int,
    primary key(CCode, BranchNo, EquipNo),
    foreign key (CCode, BranchNo) references Branch(CCode, BranchNo)
);
© www.soinside.com 2019 - 2024. All rights reserved.