文档解释
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);