此列列表没有匹配的唯一键或主键。我不知道如何为我的情况解决它

Posted

技术标签:

【中文标题】此列列表没有匹配的唯一键或主键。我不知道如何为我的情况解决它【英文标题】:no matching unique or primary key for this column-list. Im not sure how to solve it for my case 【发布时间】:2020-05-08 21:15:12 【问题描述】:

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

如果我删除代码的最后一行,它会很好地创建表格而不会出现任何错误。 以下是此处引用的其他表的屏幕截图:

公司表

分支表

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

【问题讨论】:

请不要张贴代码或错误消息的图像 - 它们很难阅读。相反,请复制代码或消息并将它们作为formatted text 包含在您的问题中。谢谢。 好吧对不起,第一次发帖,请确保不要在任何其他帖子中使用图片。谢谢 【参考方案1】:

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

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)
);

【讨论】:

非常感谢!

以上是关于此列列表没有匹配的唯一键或主键。我不知道如何为我的情况解决它的主要内容,如果未能解决你的问题,请参考以下文章

“此列列表没有匹配的唯一键或主键”。主键确实存在

SQL : ORA-02270: 此列列表没有匹配的唯一键或主键

错误 ORA-02270: 此列列表没有匹配的唯一键或主键

Oracle (ORA-02270) : 此列列表错误没有匹配的唯一键或主键

如何修复 sql 中的“ORA-02270:此列列表没有匹配的唯一键或主键”错误

Oracle (ORA-02270):该列列表没有匹配的唯一键或主键