티스토리 뷰

update에 대해 새로운 사실을 알아서 포스팅 하게 되었다.

동일 테이블에서 update 할 수 있는 방법을 알게 되었다.



테이블에서 자기 자신을 조건으로 보고 있으면 update문을 실행할 수가 없다.

그래서 서브쿼리로 조건문에 들어갈 값을 감싸준다.


update ics_normal set decision = NULL

where 1=1

and no = (

select no

from ics_normal

where no = 637982

);


위와 같은 방법으로 하면 아래와 같이 에러가 난다.

만약 update문에 서브쿼리를 써도 다른 테이블의 조건이었다면 에러가 발생하지 않는다.


위에서 말했지만 자기 자신을 조건으로 보고 있으면 update문이 에러가 난다. 

아래와 같이!




그래서 아래와 같이 서브쿼리로 한번 더 묶고 가상 테이블을 만들어줘야 한다.

alias로 한번 지정해주면 된다.


update ics_normal set decision = NULL

where 1=1

AND no = (

select *

FROM

(

select no

from ics_normal

where no = 637982

) as temp

);


그러면 성공한 모습이다.




'Sql' 카테고리의 다른 글

SQL UNION / UNION ALL  (0) 2018.10.25
댓글
«   2024/04   »
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