728x90
반응형
* DML 문장을 실행할 때 종종 서브 쿼리를 사용하는데 한 가지 유의할 사항이 있다. 서브 쿼리 내부 Where 절에서 사용한 컬럼 이름은 반드시 서브쿼리 내부의 Select 절에 명시되어야만 한다. With Check Option은 바로 이 부분에 대하여 확인해주는 역할을 한다. 먼저 With Check Option 없이 문장을 사용하겠다.
-> 현재 'LEWIS'라는 사원의 정보를 새롭게 추가할 때 부서번호(deptno)가 30이라는 값과 Select 절에 명시한 컬럼 값을 설정하고 있다. 원래의 의도는 부서번호(deptno) 값도 함께 추가하여야 하지만 실제 실행 결과는 다르게 나온다. Select 절에 부서번호(deptno)를 명시하지 않았기 때문에 deptno=30이란 값은 추가되지 못하여 널(Null) 값이 들어가게 된다.
-> 이러한 실수를 미리 확인하고 보다 정확한 문장을 생성하기 위하여 With Check Option을 사용하는 것이다. 그렇다고 바로 With Check Option을 사용하게 되면 Select 절에 명시되지 않은 컬럼의 데이터를 추가하려는 경우 에러를 발생시킨다.
-> 새롭게 수정된 문장이며 Select 절에 부서번호(deptno)가 포함되어져 있는 것을 확인할 수 있다.
728x90
반응형
'Operating System > ORACLE' 카테고리의 다른 글
[ORACLE] 데이터 잠금 (Locking) (0) | 2022.02.10 |
---|---|
[ORACLE] 커밋(Commit)과 롤백(Rollback) (0) | 2022.02.09 |
[ORACLE] 테이블 조인 ( TABLE join ) (2) | 2022.02.07 |
[ORACLE] Date 데이터 타입에 대한 출력 형식 (0) | 2022.02.04 |
[ORACLE] 조건부 함수 ( Case, Decode ) (0) | 2022.02.04 |