一尘不染

引用Oracle中的视图的外键

sql

我正在尝试使用外键引用视图,但出现此错误:

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

但是,我已经在此视图上创建了一个主键,并在TOAD的“约束”选项卡中对其进行了验证。

这是我尝试创建的表:

CREATE TABLE QUESTION
(   
    QUESTION_ID             INTEGER not null,
    CREATED_USER_ID         INTEGER not null,    
    CONSTRAINT PK_QUESTION  PRIMARY KEY (QUESTION_ID),
    CONSTRAINT FK_USER
        FOREIGN KEY (CREATED_USER_ID)
        REFERENCES SOME_VIEW(VIEW_ID)
);

SOME_VIEW是基于另一个视图的视图,该视图指向另一个架构中的employee表。


阅读 143

收藏
2021-05-16

共1个答案

一尘不染

不管是否可能创建视图的外键,这都不是实现的最佳方法。

数据库视图旨在让用户轻松地查询自己需要的某些数据,但同时又充当安全屏障,以隐藏所有数据库结构,包括表,表中的数据约束以及表交叉引用。

因此,对我来说,一个好的做法是,尽管您的新表存在于其他方案中,但还是要从您的新表中引用该表。

2021-05-16