2017-01-22 1 views
-2

현재 뷰를 연구 중입니다 ... "보기 옵션이 있습니다"(transact SQL) 뷰 유형이 있습니다 ... 나는 그것이 무엇인지 혼란 스럽습니다 ... 약간의 도움을주십시오.체크 옵션이있는 SQL보기

+0

힌트 : 문서에서 '보기 만들기'를보십시오. –

+0

@ GordonLinoff w3schools를 체크인했지만 아무 것도 없습니다 ... – john

+0

@GordonLinoff 여전히 일부 다른 문서를 확인하고 더 혼란 스러웠습니다 ... w3schools가 더 잘 설명하는 것 같습니다 – john

답변

0

보기 유형이 아니며보기 기능을 삽입/업데이트 작업의 제약 조건으로 사용하는보기 옵션입니다.
삽입 된 레코드를 뷰에서 검색 할 수있는 경우에만보기를 통해 테이블에 삽입하거나 레코드를 삽입 할 수 있습니다.
뷰에서 업데이트 된 레코드를 검색 할 수있는 경우에만보기를 통해 테이블의 레코드를 업데이트 할 수 있습니다.

PostgreSQL의 데모

create table mytable (i int); 
create view myview as select i from mytable where i <= 10 with check option; 

insert into myview (i) values (1),(2),(3); 

19:26:00 [INSERT - 3 rows, 0.010 secs] Command processed ... 1 statement(s) executed, 3 rows affected, exec/fetch time: 0.010/0.000 sec [1 successful, 0 errors]

insert into myview (i) values (11); 

19:26:20 [INSERT - 0 rows, 0.000 secs] [Code: 0, SQL State: 44000] ERROR: new row violates check option for view "myview" Detail: Failing row contains (11). ... 1 statement(s) executed, 0 rows affected, exec/fetch time: 0.000/0.000 sec [0 successful, 1 errors]

update myview set i=i*10 where i=1; 

19:27:29 [UPDATE - 1 rows, 0.000 secs] Command processed ... 1 statement(s) executed, 1 rows affected, exec/fetch time: 0.000/0.000 sec [1 successful, 0 errors]

update myview set i=i*10 where i=2; 

19:27:42 [UPDATE - 0 rows, 0.000 secs] [Code: 0, SQL State: 44000] ERROR: new row violates check option for view "myview" Detail: Failing row contains (20). ... 1 statement(s) executed, 0 rows affected, exec/fetch time: 0.000/0.000 sec [0 successful, 1 errors]

+0

업데이트 된 답변 확인 –