제발 도와주세요.ㅠ 두개 테이블 두개컬럼 동시 업데이트방법 0 4 5,788

by 마티나 [SQL Query] 쿼리 조인업데이트 [2013.01.17 11:14:47]



안녕하세요.....  도움 주시면 정말 정말 감사하겠습니다.

예를 들어 A 라는 테이블에 1번컬럼과 2번 컬럼이 존재하고
   B 라는 테이블에 1번 컬럼과 3번 컬럼이 존재 합니다.

제가 해주려는 것은

두개 테이블을 조인해서  A테이블과 B테이블의 1번컬럼 내용이 같으면 A테이블의 2번컬럼에 'Y'를 ,

B테이블의 3번컬럼에 100 을 업데이트 하려 합니다.

조인을 걸면 마지막 set - A='100', B='Y' 를 줘야 하는데.. 조인뷰에 의하여 하나이상의 기본 테이블을 수정할수 없습니다. 라고 합니다.



재정리 드립니다

TABLE A - Col1, Col2

Table B - Col1, Col3

where a.col1=b.col1 
set a.col2=A, b.col3='100' 을 하려는 내용입니다.
by 아발란체 [2013.01.17 11:55:59]
1. 키 보존을 이용한 업데이트
2. MERGE를 이용한 업데이트
3. EXISTS를 이용한 업데이트

이 3가지 방법 다 동시에 2개 테이블 업데이트는 안됩니다.
각 업데이트를 해주셔야 할 것 같아요.

에러 메세지 내용이 업데이트 항목이 1개 이상 테이블에 있어서 발생하는 것 같습니다.

by 마농 [2013.01.17 11:57:12]

트리거를 이용하는 방법도 있습니다.


by 손님 [2013.01.17 16:21:01]
-- PL/SQL 사용
BEGIN
    FOR CS IN (
    SELECT  A.ROWID   A_ROWID
   ,B.ROWID   B_ROWID
  FROM  TABLEA A, TABLEB B
WHERE  A.COL1 = B.COL1
    )
    LOOP
    UPDATE  TABLEA
   SET  COL2  = 'Y'
WHERE  ROWID = CS.A_ROWID
    ;
    UPDATE  TABLEB
   SET  COL3  = '100'
WHERE  ROWID = CS.B_ROWID
    ;
    END LOOP ;
END ;

by 마티나 [2013.01.18 11:08:56]

감사합니다 ^^

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입