2021. 3. 2. 14:55
Mysql에서 Oracle을 생각하고 UPDATE를 진행하다 발생한 오류이다;
You can't specify target table '테이블명' for update in FROM clause
원인은 아래와 같이 같은 테이블을 참조. 즉, Where에 같은 테이블을 참조하면 발생되는 에러이다.
UPDATE 테이블명1 BB
SET BB.PASSWORD = (select AA.password from 테이블명1 AA WHERE AA.user_id = 'rosebay'),
BB.UPDATED_BY = 'rosebay', BB.UPDATE_DATE = now()
WHERE BB.user_id = 'wildflower' ;
해결방법은 subquery 절을 한번 더 감싼 후(임시테이블로 처리) UPDATE 한다.
반응형
'IT(job) > DB' 카테고리의 다른 글
[MSSQL] 날짜표기(응용) (0) | 2021.01.22 |
---|---|
[Oracle-Error] ORA-00984: 열을 사용할 수 없습니다 (0) | 2020.12.10 |
[PostgreSQL] 자주쓰는 명령어 (0) | 2020.10.21 |
[MSSQL] 빈번하게 쓰는 명령어 (0) | 2020.10.16 |
[MySql] DDL, DML(작성중) (0) | 2020.09.23 |