我试图使用带有novalidate键的复合键在表上添加引用约束,因为我确实有一些我不想删除的垃圾数据。 以下是示例: -
alter table SOURCE_SYSTEM add constraint FK_SOURCE_SYSTEM_TENANT foreign key (PLATFORMSET_GUID, TENANT_GUID)
references EP_TENANT (PLATFORMSET_FK, GUID) ENABLE NOVALIDATE;
但它说
ORA-02270: no matching unique or primary key for this column-list
答案 0 :(得分:2)
ORA-02270:此列列表没有匹配的唯一键或主键
错误说明了一切。
<强>原因:强>
您尝试使用唯一键或主键引用表,但是 您列出的列与主键或主键不匹配 该表不存在密钥。
在你的情况下:
references EP_TENANT (PLATFORMSET_FK, GUID) ENABLE NOVALIDATE;
根据错误,EP_TENANT
表上没有主键,您无法在SOURCE_SYSTEM
上创建外键表引用 EP_TENANT表。
您必须先将主键添加到EP_TENANT表中,如下所示:
ALTER TABLE EP_TENANT
ADD CONSTRAINT PLATFORMSET_PK PRIMARY KEY (PLATFORMSET);