Background Image
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

 

데이타 연관성이 있는 데이타와 조인하여 UPDATE 하는 경우가 있다.

즉, 테이블 A와 B를 조인하여 나온 결과를 B의 특정컬럼에 업데이트 하는 경우가 있다.


이때, 프로그램 개발자가 일반적으로 처리하는 방법이 아래와 같은 방법으로 간단하게 프로그램을 작성하여 처리한다.

   //특정 테이블 UPDATE
            StringBuffer sql = new StringBuffer();
            sql.append( " SELECT A.NEW_DATA, B.OLD_DATA     "  );
            sql.append( " FROM JOIN_TABLE A, TARGET_TABLE B "  );
            sql.append( "  WHERE A.TABLE_KEY = B.OLD_DATA   "  );
           
            PreparedStatement pstmt = conn1.prepareStatement(sql.toString());
            rs = pstmt.executeQuery();
           
            StringBuffer updateSql = new StringBuffer();
            updateSql.append( " UPDATE TARGET_TABLE SET OLD_DATA = ? WHERE OLD_DATA = ? " );

            PreparedStatement updatePstmt = null;
            while(rs.next()) {
                updatePstmt = conn2.prepareStatement(updateSql.toString());
                updatePstmt.setString(1, rs.getString(1));  // A.NEW_DATA
                updatePstmt.setString(2, rs.getString(2));  // B.OLD_DATA
                updatePstmt.executeUpdate();
                updatePstmt.close();
            }
            rs.close();
            pstmt.close();

 

위에서 처리하는 것을 한개의 쿼리로 처리하는 것이 큐브리드에서는 가능하다.

 

아래와 같이 한번의 쿼리로 처리하면, 처리속도도 어마어마하게 빠르다.

UPDATE  TARGET_TABLE B 

               SET  B.OLD_DATA  = (  SELECT A.NEW_DATA  

                                                           FROM JOIN_TABLE A

                                                           WHERE A.TABLE_KEY = B.OLD_DATA    ) ;  

 

 


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
222 질의작성 전체 테이블 UPDATE시 SELECT, UPDATE를 통한 INDEX SCAN방식으로 테이블 X_LOCK을 방지하자! file 이경오 2015.08.13 15432
221 운영관리 CUBRID HA 구성 후 구동중인 slave/replica node에서 write 하기 정만영 2015.07.15 10430
220 질의작성 INSERT수행 시, 현재날짜,현재시각으로 자동 입력하는 방법 주현 2015.07.08 27671
219 운영관리 windows 환경에서 압축파일로 CUBRID 설치시 환경변수 쉽게 설정하기 김승훈 2015.07.02 8595
218 질의작성 CUBRID dummy data생성-간단편 주현 2015.07.01 9060
217 기타 CUBRID HA에서 사용하는 포트 확인 방법(1523, 59901) 주현 2015.07.01 9655
216 질의작성 카디시안(한 Row를 여러 Row) 쿼리문 만들기 1 엄기호 2015.06.30 15020
215 CUBRID 매니저 32bit JRE 환경에서 64bit CUBRID Tool 사용 손승일 2015.06.30 8589
214 CUBRID 매니저 CUBRID Manager 및 엑셀 파일을 이용하여 데이터 입력 시, garbage값이 포함되어 저장되는 경우 해결 방법 이용미 2015.06.17 11184
213 질의작성 SQL튜닝 - 인덱스 활용 사례 권호일 2015.06.04 13168
212 응용개발 JAVA SP 사용 시 로그 처리 방법 손승일 2015.06.03 10007
211 운영관리 디비와 테이블 문자셋이 다른 경우 처리 방법 이용미 2015.06.03 17439
210 질의작성 A테이블의 다수의 컬럼을 B테이블로 UPDATE 하는 SQL 김승훈 2015.05.07 8708
209 응용개발 전체 레코드 개수 확인하는 SP 김승훈 2015.05.07 16387
208 질의작성 MERGE INTO 사용 예제 ( INSERT, UPDATE문을 1개의 쿼리로 실행 ) 권호일 2015.05.01 23311
207 CUBRID 매니저 워크스페이스 사용중입니다. 다른 워크스페이스를 선택하세요. 대응법 성진 2015.04.24 11841
206 CUBRID 매니저 CUBRID Manager 메모리 설정하기(cubridmanager.ini) file 성진 2015.04.24 15321
205 운영관리 CUBRID HA와 Primary key 제약조건 정만영 2015.04.21 12753
204 운영관리 테이블 사용량 확인방법 정만영 2015.02.03 13515
203 CUBRID 매니저 cubrid manager server 구동 시 no "events" section in configuration 오류 발생 손승일 2014.07.03 11610
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 15 Next
/ 15

Contact Cubrid

영업문의 070-4077-2112 / 기술문의 070-4077-2148 / 대표전화 070-4077-2110 / Email. contact_at_cubrid.com
Contact Sales