IT/DATABASE
[mysql] ~ is specified twice, both as a target for 'UPDATE' and as a separate source for data ~
김보야
2017. 3. 13. 14:41
~ is specified twice, both as a target for 'UPDATE' and as a separate source for data ~
~ is specified twice, both as a target for 'DELETE' and as a separate source for data ~
서브쿼리에서 조회한 테이블과 동일한 테이블의 값을 변경하려고 할 때 발생한다.
해당 서브쿼리에 ALIAS를 부여한 뒤 SELECT문 으로 한번 더 감싸면 해결된다.
ex)
1 2 3 4 5 6 7 8 9 10 11 12 13 | UPDATE X_TABLE SET USE_YN = 'Y' WHERE SOURCE_ID = ( SELECT * FROM ( SELECT XT.SOURCE_ID FROM X_TABLE XT ,Y_TABLE YT WHERE XT.SOURCE_ID = YT.SOURCE_ID AND XT.SOURCE_NAME = 'SAMPLE' AND YT.PROG_NAME = 'P00029830M001023' ) TMP ) | cs |