Postgresql SQL update query – column value to another column

한컬럼의 값을 다른 컬럼으로 복사하기

데이터 이동 방향
dept_name = dept_code

 

create query

create table department(
  dept_id bigint,
  dept_code varchar(100),
  dept_name varchar(100)
)

update query

--가장쉬운방법
update department a
set dept_name = b.dept_code
from department b
where a.dept_id = b.dept_id
-- 조인을 이용
update department a
set dept_name = c.dept_code
from department b,
(
  select dept_id, dept_code from department
) c where a.dept_id = c.dept_id
-- 명시적인 inner join 이용... 은 잘 안된다.

 

한 테이블을 값을 이용해서 다른테이블 업데이트하기

셀렉트 쿼리처럼 해서 사용하면된다.

update user t1
set phone=t2.phone, address=t2.level
from 
	employee t2
where
	t1.email = t2.email

다른테이블의 값을 조인해서 다른 테이블 업데이트하기

update user t1
set phone=t2.phone, address=t2.level
from 
	employee t2,
	seller t3
where
	t1.email = t2.email and
	t2.email = t3.email