11-5. WITH CHECK OPTION 절 사용 > 학습자료 | IOTsw_u2 U2 Project
학습자료

SQL 11-5. WITH CHECK OPTION 절 사용

본문

 

WITH CHECK OPTION 절을 사용하면 뷰를 통한 DML 작업이 뷰의 도메인 내에서 수행된다.

․ 뷰를 통해 행의 부서 번호 변경을 시도하면 WITH CHECK OPTION 제약 조건에 위배되므로 오류가 발생한다.

예제)

오라클 디비 예제 : 

CREATE OR REPLACE VIEW empvu20

AS

SELECT *

FROM employees

WHERE department_id = 20

 

MSSQL 디비 예제 :

CREATE VIEW empvu20

AS

SELECT * FROM employee

WHERE pub_id=0877

WITH CHECK OPTION

SELECT * FROM empvu20

UPDATE empvu20

SET pub_id=9952

WHERE emp_id='H-B39728F'

 

범위를 벗어난 값으로 삭제, 수정, 삽입을 하려 하면 오류가 발생한다.*/

 

CREATE VIEW vtitleprice

AS

SELECT title_id, price

FROM titles

where price > 15.00

WITH CHECK OPTION

WITH CHECK OPTION CONSTRAINT empvu20_ck;

 

View created.

 

☞설명) WITH CHECK OPTION 절 사용

뷰를 통해 참조 무결성을 검사할 수 있으며 제약 조건을 데이터베이스 레벨로 적용할 수도 있다.

뷰는 데이터 무결성 보존에 사용할 수 있지만 사용이 매우 제한되어 있다.

 

WITH CHECK OPTION 절을 사용하면 뷰를 통한 INSERT 및 UPDATE 작업이 수행될 경우 해당 뷰가 선택할 수 없는 행

은 생성되지 않는다.

따라서 삽입 또는 갱신되는 데이터에 대해 무결성 제약 조건을 적용하고 데이터의 유효성을 검사할 수 있다.

뷰가 선택하지 않은 행에 대해 DML 작업을 시도하면 지정된 제약 조건 이름과 함께 다음 오류가 표시된다.

 

UPDATE empvu20

SET department_id = 10

WHERE employee_id = 20;

UPDATE empvu20

 

----------------------------------------------------------

ERROR at line 1 :

ORA-01402 : view WITH CHECK OPTION where-cloause violation

----------------------------------------------------------

 

참고 : 부서 번호를 10으로 변경하면 뷰에서 해당 사원을 더 이상 볼 수 없으므로 어떤 행도 갱신되지 않는다.

이 뷰에서는 WITH CHECK OPTION 절을 사용하므로 부서 20의사원만 볼 수 있으면 뷰를 통해 해당 사원의 부서 번호를

변경할 수는 없다. 

댓글목록

11. 뷰란
이어쓰기 1.A 11-1. 뷰에서 데이터 검색
이어쓰기 2.B 11-2. 뷰 수정
이어쓰기 3.C 11-3. 복합뷰 생성
이어쓰기 4.D 11-4. 뷰를 통한 DML 작업 수행에 관한 규칙
이어쓰기 5.E 11-5. WITH CHECK OPTION 절 사용
이어쓰기 6.F 11-6. DML 작업 거부
이어쓰기 7.G 11-7. 뷰 제거
이어쓰기 8.H 11-8. 인라인 뷰
이어쓰기 9.I 11-10. "Top-N"분석
이 원글에 이어쓰기

학습자료 목록

Total 91건 1 페이지
게시물 검색

IOTsw_u2 정보

회사 . U2
주소 . 어느별 하늘 아래에 있것지요
사업자 등록번호 . 백수임 대표 . 김씨 전화 . 02-123-4567 팩스 . 팩스없음
통신판매업신고번호 . 낼할께 개인정보관리책임자 . 김씨가 알아서 함 부가통신사업신고번호 신고안함
Copyright © 2001-2013 U2. All Rights Reserved.
닫기