나는 여러 테이블오라클 데이터베이스는 여러 테이블에 CHECK를 적용
CREATE TABLE RollingStocks (
Id NUMBER,
Name Varchar2(80) NOT NULL,
RollingStockCategoryId NUMBER NOT NULL,
CONSTRAINT Pk_RollingStocks Primary Key (Id),
CONSTRAINT Check_RollingStocks_CategoryId
CHECK ((RollingStockCategoryId IN (SELECT Id FROM FreightWagonTypes))
OR
(RollingStockCategoryId IN (SELECT Id FROM LocomotiveClasses)))
);
에 오라클 데이터베이스에 CHECK 제약 조건을 적용하기 위해 노력하고 ... 그러나 나는 다음과 같은 오류 얻을 :
*Cause: Subquery is not allowed here in the statement. *Action: Remove the subquery from the statement.
수를 문제가 무엇인지, 같은 결과를 얻는 방법을 이해하는 데 도움이됩니까?
또 다른 대안은 RollingStockCategoryId를 두 개의 null 가능 열로 나누는 것입니다. 하나는 FK에서 FreightWagonTypes로, 다른 하나는 LocomotiveClasses에서 FK로 분리하는 것입니다. check 제약 조건을 추가하여 하나의 행에 대해 null이 아니어야한다고 말할 수 있습니다. –