database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
ㆍSybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Sybase Q&A 1643 게시물 읽기
No. 1643
View에 대하여
작성자
김충관(kcg1932)
작성일
2006-08-30 09:31
조회수
5,055

Oracle에서는 Updatable joined view라고 하여


view라 하더라도 키의 속성을 유지하고 있으면

insert, update, delete가 가능합니다.


저희가 ase를 사용하는데 테이트를 해보니까

안되네요...


CREATE VIEW vw_aaa (....)

as select ....

from 테이블


이런식으로 view를 create 했습니다.


원래 sybase에서는 view에 update 문장을 사용하지 못하는 것인지

아니면 create view 문장에 옵션이 있는건지요?


고수님들의 조언을 부탁합니다.

이 글에 대한 댓글이 총 3건 있습니다.

할수 있는데요...

create table test(a int)
create view test_v as select * from test
insert test_v values(1)
select * from test_v
update test_v set a=10
select * from test_v

 

a          
-----------
          1

a          
-----------
         10

 

지연님이 2006-08-30 10:01에 작성한 댓글입니다. Edit

저도 안된다고 알고 있는데 댓글을 보고 테스트 해봤습니다. 되네요..근데 이런 경우는 한테이블에 대한 뷰에 대하여 그리고 한컬럼인데요 . 


만약 한테이블의 여러개 컬럼과 또 not null 혹은 null의 선언에 따라서 틀려질 수도 있구요..(view를 생성할 때 전체를 선택하지 않고 일부만 했을 때)

두개의 테이블을 조인하여 뷰를 생성했을 때는 안되는 걸로 알고있습니다.



잠시 참조설명서에 있는 내용을 올립니다.


뷰에 대한 제한

. 현재 데이터베이스에만 뷰를 생성할 수 있음.

. 뷰가 참조하는 열수는 250개를 초과할 수 없음.

. 임시 테이블에 뷰를 생성할 수 없음.

. 뷰에는 트리거를 생성하거나 인덱스를 구축할 수 없음.

. 뷰에 있는 text나 image열에는 readtext 또는 writetext를 사용할 수 없음.

. 뷰를 정의하는 select문에 order by나 compute절, into키워드 또는 union연산자를 포함할 수 없음.

. create view문은 단일 배치에서 다른 SQL문과 함께 사용할 수 없음.


뷰를 통한 데이터 수정

. delete문은 다중 테이블 뷰에 허용되지 않음.

. 기본 테이블이나 뷰의 모든 not null열이 새 행을 삽입하는 뷰에 포함되어 있지 않으면 insert 문은 허용되지 않음.  - ASE는 기본 테이블이나 뷰에 있는 not null 열에 대해 값을 제공할 수 없음.

. 계산된 열을 포함하는 뷰를 통해 행을 삽입할 수 없음.

. insert문은 distinct또는 with check option을 사용하여 생성된 조인 뷰에 허용되지 않음.

. update문은 조인 뷰 with check option에 허용. 둘 이상의 테이블의 열을 포함하는 표현식에서 해당 열이 where절에 나타나면 업데이트는 실패함.

. 조인 뷰를 통해 행을 삽입하거나 업데이트한 경우 모든 해당 열은 같은 기본 테이블에 속해야함.

. distinct 절을 사용하여 정의된 뷰를 업데이트하거나 뷰에 삽입할 수 없음.

. 데이터 업데이트 문은 계산된 뷰의 열을 변경할 수 없으며 집계를 포함하는 뷰를 변경할 수 없음.

우장수(freetown)님이 2006-08-30 10:01에 작성한 댓글입니다.
이 댓글은 2006-08-30 10:06에 마지막으로 수정되었습니다.

그래서 view를 통한 insert등을 제한된 view를 이용한 insert라고 한답니다~

지연님이 2006-08-30 10:39에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1646[질문입니다]인덱스에 대해서 [2]
장학우
2006-09-01
3688
1645초보좀도와주세요~! [1]
김대현
2006-08-30
4222
1644Exclusive Lock에 대해서... [3]
전형국
2006-08-30
4787
1643View에 대하여 [3]
김충관
2006-08-30
5055
1642Identity 필드에 -1을 입력하는 방법은 없나요?? [1]
전형국
2006-08-29
4035
1641달의 말일자 구하기 [1]
DJ보이
2006-08-29
5042
1640temp테이블 생성에 관해 질문드립니다.
전용인
2006-08-29
4092
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다