▶오류 발생 원인
MySQL에서는 INSERT UPDATE DELETE 등을 수행할 때, 해당 수행하려는 테이블과 서브쿼리로 끌어오려는 테이블이 같을 때 에러를 발생시킨다. 참고로 Oracle의 경우에는 이러한 제약이 없다.
▶오류 해결방법
UPDATE 문을 예로 들면 이러한 쿼리문을 보냈을 것이다.
UPDATE member SET jj_password = 'guest', jj_name = 'test123', jj_address=(SELECT jj_address from member where id='admin') WHERE jj_id = 'hack123' "; |
해당 서브쿼리 안에 서브쿼리를 다시 넣어서 값을 끌어다가 사용하면 해당 오류는 해결된다.
UPDATE member SET jj_password = 'guest', jj_name = 'test123', jj_address = (SELECT passwd FROM (SELECT jj_address AS passwd from member where id='admin') A) WHERE jj_id = 'hack123' "; |
'웹 프로그래밍 > MySQL' 카테고리의 다른 글
INSERT 데이터 존재 시, UPDATE 문으로 사용하는 법 (0) | 2023.01.29 |
---|---|
[MySQL] 데이터 타입 1 - 숫자 (0) | 2022.10.27 |
[MySQL] SELECT문에서의 =와 비트연산자(bitwise operator) 그리고 논리연산자(logical operator) (0) | 2022.10.25 |
[MySQL] 연산자 정리 (0) | 2022.10.24 |
댓글