Oracle 使用novalidate选项创建复合参照关键点
我试图使用复合键和novalidate键在表上添加一个引用约束,因为我确实有一些我还不想删除的垃圾数据。 下面是一个例子:-Oracle 使用novalidate选项创建复合参照关键点,oracle,oracle11g,constraints,Oracle,Oracle11g,Constraints,我试图使用复合键和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-022
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
ORA-02270:此列列表没有匹配的唯一键或主键
错误说明了一切
原因:
您试图使用唯一键或主键引用表,但
列出的列与主键或主键不匹配
此表的键不存在
就你而言:
引用EP_租户(平台集,GUID)启用NOVALIDATE代码>
根据错误,在EP_租户
表上没有主键,您无法在SOURCE_系统
表上创建引用EP_租户表的外键
必须首先向EP_租户表添加主键,如下所示:
ALTER TABLE EP_TENANT
ADD CONSTRAINT PLATFORMSET_PK PRIMARY KEY (PLATFORMSET);
ORA-02270
引用表中必须有主键。看我的答案。@AthreyTR不客气。如果它对您有帮助,请将其标记为已回答。这也会帮助其他人。