[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 |