ORA-02270: no matching unique or primary key for this column-list

文档解释

ORA-02270: no matching unique or primary key for this column-list

Cause: A REFERENCES clause in a CREATE/ALTER TABLE statement gives a column-list for which there is no matching unique or primary key constraint in the referenced table.

Action: Find the correct column names using the ALL_CONS_COLUMNS catalog view

ORA-02270错误表明Oracle要求加载到父表的列列表未能匹配父表中任何唯一或主键,使其不存在唯一性平衡要求,这通常是一个严重的关系数据库设计上的问题。

官方解释

常见案例

ALTER TABLE TB_A ADD CONSTRAINT FK_TB_A FOREIGN KEY (B_ID);

正常处理方法及步骤

我们可以通过Specifying the Parent Columns in a Foreign Key Constraint来处理,那就是确认在父表TB_A上有有必要的主键或唯一性非空的约束,以作为子表的外键约束:

如果TB_A没有唯一性约束,我们可以用如下语句建立:

ALTER TABLE TB_A

ADD CONSTRAINT TB_A_Unique

UNIQUE (A_ID);

然后就可以在子表上正确添加外键约束:

ALTER TABLE TB_A ADD CONSTRAINT FK_TB_A FOREIGN KEY (B_ID) REFERENCES TB_A (A_ID);

你可能感兴趣的