Oracle에서 보기를 참조하는 외부 키
외부 키로 보기를 참조하려고 하는데 다음 오류가 발생합니다.
"오류: ORA-02270: 이 열 목록에 일치하는 고유 또는 기본 키가 없습니다."
그러나 이 보기에 기본 키를 생성하여 TOD의 제약 조건 탭에서 확인했습니다.
다음 표를 작성하려고 합니다.
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는 다른 스키마의 직원 테이블을 가리키는 다른 뷰를 기반으로 하는 뷰입니다.
보기에 대한 외부 키를 만들 수 있는 가능성과 상관없이, 그것은 실제로 구현하기에 가장 좋은 아이디어가 아닙니다.
데이터베이스 뷰는 사용자가 필요한 일부 데이터를 편안하게 쿼리할 수 있도록 설계되었지만 동시에 보안 장벽 역할을 하여 테이블, 테이블의 데이터 제약 조건 및 테이블 상호 참조를 포함한 모든 데이터베이스 구조를 숨길 수 있도록 설계되었습니다.
따라서 다른 계획에 있는 테이블에도 불구하고 새 테이블에서 기존 테이블을 참조하는 것이 좋습니다.
다른 스키마를 가리키므로 SOME_VIEW를 Materialized 뷰로 구현하는 것이 최선입니다.그런 다음 구체화된 보기를 변경하여 기본 키를 추가하고 포어링 키에서 이 보기를 참조할 수도 있습니다.
다음은 https://docs.oracle.com/cd/A97630_01/server.920/a96567/repmview.htm 에서 읽어야 할 설명서입니다.
문제의 원인은 아마도 관점에 반대하는 외국인 키 때문일 것입니다.
언급URL : https://stackoverflow.com/questions/3833150/foreign-key-referencing-a-view-in-oracle
'programing' 카테고리의 다른 글
Asp.net core를 사용하여 다른 웹 API에 대한 프록시 만들기 (0) | 2023.07.13 |
---|---|
VueActions에서 약속을 데이지 체인으로 연결하면 무한 루프가 발생함 (0) | 2023.07.13 |
그라들 사용법.자바와 그루비가 함께? (0) | 2023.07.13 |
몽구스 스키마를 동적으로 생성하는 방법은 무엇입니까? (0) | 2023.07.13 |
탭으로 구분된 데이터 파일을 생성하기 위한 SQL Plus 설정 (0) | 2023.07.13 |