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
운영게시판
최근게시물
DB2 Q&A 1079 게시물 읽기
No. 1079
update join view 사용관련
작성자
새벽이
작성일
2006-08-17 17:45
조회수
7,929

대량데이터를 옮기는 작업을 진행중인데요...


일반적인 아래의 update


UPDATE AAA AS A

SET (A.A2)

= (SELECT B.B2

FROM BBB AS B

WHERE TRIM(B.B1) = A.A1;


는 속도관계로 이리저리 자료를 찾다보니

VIEW를 UPDATE 할 수 있다고 해서 아래의 문장으로 실행을 해보니


UPDATE

(SELECT A.A2 VAL1, B.B2 VAL2

FROM AAA AS A

INNER JOIN BBB AS B

ON A.A1 = B.B1) AS TEMP

SET VAL1 = VAL2;


위에 문장이 에러가 발생하며 실행이 되지 않습니다.


문법이 잘못된 것인지,

아니면 DB2에서는 지원되지 않는 부분인지,

아니면 SQL 권한 문제인지


답변 부탁드립니다.

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

님이 원하시는 형태는 지원이 안되는것 같습니다. 
대량의 조회를 하여 update를 하는 경우에 update 대상에 비해 시간이 오래 걸리는 경우가 있습니다. 
이런경우 update table에 primary key가 있다면  update대상을 export받은 후 insert_update option을 사용하여 data를 import 해 보세요. 

V8이상에서 view를 이용하여 insert,update,delete를 하는 형태의 예제입니다. 

create table t1( c1 char(8), c2 int ) ;
ALTER TABLE T1
        ADD CONSTRAINT CK_T1 CHECK
             (C1 between '20060101' and '20060631') ;

create table t2( c1 char(8), c2 int ) ;
ALTER TABLE T2
        ADD CONSTRAINT CK_T2 CHECK
              (C1 between '20060701' and '20061231');

create view v_t as select * from t1 union all select * from t2;
insert into v_t values('20060101',1),('20060101',2),('20060901',1),('20060901',2);

select * from t1;
select * from t2;


도님이 2006-08-17 19:14에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1082질문 하나 더할게요..^^ [1]
이종민
2006-08-22
7476
1081aix5.3에 db2설치후 instance생성.. [1]
이종민
2006-08-22
7252
1080데이터베이스별로 VIEW를 생성시 사용된 SELECT 쿼리를 어디서 얻나요?? [1]
박영진
2006-08-18
7601
1079update join view 사용관련 [1]
새벽이
2006-08-17
7929
1078CLI0002W 오류 해결법 부탁드립니다. [3]
장치영
2006-08-10
8544
1077[질문] EXCEPT ALL 랑 EXCEPT 차이를 모르겠습니다. [2]
이준식
2006-08-10
7932
1073DB2의 한글 크기 3바이트 [3]
윤세관
2006-08-08
14457
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다