2014-06-25 3 views
1

사용자가 NULL을 3 열에 동시에 삽입하지 못하도록 제한하는 Oracle 테이블의 여러 열에 CHECK 제약 조건을 추가하려고합니다. 그러나 테이블의 각 열은 독립적으로 NULL을 허용 할 수 있지만 3 개의 열을 함께 수용 할 수는 없습니다.Oracle - 여러 열에 대한 제약 조건 확인

ALTER TABLE table1 ADD CONSTRAINT CK_not_null 
CHECK (col1 IS NOT NULL AND col2 IS NOT NULL AND col3 IS NOT NULL); 

이 점검 제한 조건은 세 열 중 하나에서 NULL을 허용하지 않습니다. 이것에 대한 어떤 생각?

+0

당신은 트리거를 사용해야 할 수도 있습니다 모든 세 개의 열 null 어디 있는지 설명하고 동작은 조건합니다 (not 부울 연산자) 부정에 의해 달성 될 수있다. – OldProgrammer

답변

2

이 제한 조건은 사용자의 요구 사항을 충족시키지 못합니다. 세 열 모두가 not null인지 확인합니다.

ALTER TABLE table1 
ADD CONSTRAINT 
ck_not_null CHECK 
(NOT (col1 IS NULL AND col2 IS NULL AND col3 IS NULL)) 
+0

대단히 고마워요. 정말 그 문제를 해결하는 데 도움이되었습니다. – user3773317