개발중/MYSQL
MySQL Error 1093 : You can't specify target table 'tablename' for update in FROM clause
Binsoo
2022. 11. 2. 10:12
728x90
반응형
원인
MySQL 은 Oracle 과는 달리 UPDATE 나 DELETE 시
자기 테이블의 데이터를 바로 사용 못하므로 아래와 같은 SQL 을 실행시 1093 에러가 발생함.
UPDATE DEVEL_ANA_DICTIONARY
SET USE_YN = 'Y'
WHERE WORD_NO = ( SELECT WORD_NO
FROM DEVEL_ANA_DICTIONARY
WHERE WORD_NM = '007가방' );
처리
Sub Query 를 하나 더 넣고
Sub Query 결과를 임시 테이블로 만든후에 실행하면 해결됨.
UPDATE DEVEL_ANA_DICTIONARY
SET USE_YN = 'Y'
WHERE WORD_NO = ( SELECT TEMP.*
FROM (SELECT WORD_NO
FROM DEVEL_ANA_DICTIONARY
WHERE WORD_NM = '007가방'
) TEMP );
728x90
반응형