[SQL] 서브쿼리(SubQuery)


UPDATE test2
SET test2.t1_no = 1
WHERE
    t2_no IN    
    (
    SELECT
        test2.t2_no AS t2_t2_no        
    FROM
        test1
        RIGHT JOIN test2  ON ( test1.t1_no = test2.t1_no )
    WHERE
        isnull( test1.t1_no )
    GROUP BY
        test2.t1_no
    )


1093 - You can't specify target table 'test2' for update in FROM clause



* 제약 사항

    - 서브쿼리(SubQuery)에 update 하려는 테이블(test2)를 사용하면 안된다.
    - View를 사용해도 마찬가지로 제약이 있다.
        -> 해결 방법 : test2 테이블을 복사해서 test3으로 하고 서브 쿼리의 test2 부분을 test3으로 수정한다.
            -> 근본적인 해결 방법은 아니다


방법2 : 프로시저의 커서 이용


방법3 : 외부에서 프로그램을 작성해 접속


반응형

'Code > Database (DB)' 카테고리의 다른 글

[DB] PpostgreSQL 사용기  (0) 2019.02.11
[SQL] MySql 프로시저(PROCEDURE )  (0) 2019.02.07
SQL 정리 (JOIN, 연산자)  (0) 2018.11.08
[윈도우] MySQL root 비밀번호 리셋  (1) 2018.10.03
FireFox DB(sqlite) 정리  (0) 2017.02.14
Posted by codens