티스토리 뷰

MySQL에서 


Error Code: 1093. You can't specify target table 'TableName' for update in FROM clause


과 같은 오류가 발생했을 때 처리 방법.



오류 상황


INSERT INTO members(mid_, name_, phone, email, regDate) 
	VALUES ((SELECT CONCAT('M', LPAD(IFNULL(SUBSTRING(MAX(mid_), 2), 0) + 1, 2, 0)) AS newID FROM members), 'Hong', '010-2222-1111', 'hong@naver.com', now());

MySQL에서 동일한 서브쿼리를 사용해서 나타는 현상이다.

별칭을 지정해주면 해결.


해결 방법


INSERT INTO members(mid_, name_, phone, email, regDate) 
	VALUES ((SELECT CONCAT('M', LPAD(IFNULL(SUBSTRING(MAX(mid_), 2), 0) + 1, 2, 0)) AS newID FROM members a), 'Hong', '010-2222-1111', 'hong@naver.com', now());

SELECT 문 FROM 뒤에 별칭 'a'를 지정해서 오류 해결


'IT 공부 in 교육센터 > MySQL_개념정리' 카테고리의 다른 글

mySQL 버전 업그레이드(5.7 -> 8.0)  (0) 2018.09.15
mysql 8.0과 JDBC 연결  (1) 2018.09.14
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함