Notice
Recent Posts
Link
Tags
- PYTHON
- spring security 6
- Django
- mysql
- spring
- sql
- 1차원 배열
- SSL
- 문자열
- AWS
- spring boot
- 자바
- 스프링부트
- string
- ORM
- join
- java
- jpa
- DI
- static
- spring mvc
- hibernate
- select
- 스프링
- springboot
- 데이터베이스
- 프로그래머스
- @transactional
- nginx
- Docker
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Archives
개발하는 자몽
[MySQL] You can't specify target table '테이블명' for update in FROM clause 본문
Database
[MySQL] You can't specify target table '테이블명' for update in FROM clause
jaamong 2022. 1. 20. 16:10SQL Error [1093] [HY000] : You can't specify target table '테이블명' for update in FROM clause
원인 위 명령어를 실행하려는 테이블과 같은 테이블에서 서브 쿼리로 값을 가져오려는 시도
UPDATE UserPlantList
SET status=?
WHERE userIdx=? AND uPlantIdx=(SELECT uPlantIdx FROM FROM UserPlantList WHERE status=?)
해당 에러는 MySQL에서 특정 테이블에 INSERT, UPDATE, DELETE 등을 수행할 때 발생하는 에러이다. (오라클은 문제없이 돌아가지만 MySQL에서는 지원되지 않는다.) 덕분에 어제 뭐가 문제인지 몰라서 한참 고생했다.
해결 서브쿼리를 한 번 더 감싸서 값을 가져오자
UPDATE UserPlantList
SET status=?
WHERE userIdx=? AND
uPlantIdx=(SELECT Idx FROM (SELECT uPlantIdx AS Idx FROM UserPlantList WHERE status=?) T)
해결에 도움이 된 출처
'Database' 카테고리의 다른 글
[TIL / SQL] relation, type, constraint, FK (MySQL) (0) | 2024.05.11 |
---|---|
JDBC, JPA, MyBatis 차이 (0) | 2022.02.09 |
5. 관계 데이터 모델링 (0) | 2022.01.17 |
개념적 데이터 모델링: 실습 (0) | 2022.01.13 |
4. 개념적 데이터 모델링 (1) | 2022.01.12 |
Comments