postgresql select 해서 update 하기 (join 활용)
안녕하세요.
예전에 select 해서 insert 하기라는 포스팅을 한 기억이 나네요
[개발/database] - [oracle]오라클 select해서 insert 하기
이번에는 select 해서 update하기 입니다.
사실 말 그대로 select로 update를 하고자 하면
update tableA set
addr = (select addr from tableB where usr_nm='홍길동')
이런식으로 할수도 있고
update tabeA a set
addr = (select addr from tableB where usr_nm = a.usr_nm)
where
usr_nm in
(
select usr_no from tableB
)
이런식으로도 할 수 있습니다.
하지만 데이터 양이 많아지면 많아 질수록 속도는 엄청나게 느려집니다.
select를 직접 해오기 때문이죠.
그래서 join을 통해 update 하시는걸 추천 드립니다.
join 해서 update하기
바로 예시쿼리 적겠습니다.
update tableA AS a set
addr = b.addr
from tableB AS b
where
a.usr_no = b.usr_no
select 해서 update문을 돌려야하는데
어떻게 할지 한참을 고민했네요...
다들 삽질하지 맙시다!
현재 저는 postgresql에서 테스트를 하였지만
오라클, mysql에서도 무난하게 쓸 수 있을거라 생각합니다.
감사합니다.
'개발 > DB' 카테고리의 다른 글
[oracle]오라클 줄바꿈 처리 및 줄바꿈 제거(chr) (2) | 2018.04.30 |
---|---|
[오라클]oracle 여러 테이블 컬럼 select (union all) (0) | 2018.02.14 |
[오라클]트리거 생성, 삭제 (0) | 2018.02.09 |
[oracle] cursor를 이용한 loop 돌리기 (2) | 2017.11.23 |
[posgreSql] pgAdmin을 이용하여 데이터 백업 및 복구하기 (2) | 2017.11.13 |
postgresql loop update 함수 만들기 (0) | 2017.10.10 |
오라클 ORU-10027: buffer overflow, limit of 20000 (0) | 2017.08.29 |