DB, SQL
[postgreSQL] 다중 업데이트 작업을 효율적으로 수행하는 방법 -문자열 합치기(concat), 작은 따옴표 처리
jhj.sharon
2024. 6. 10. 10:45
반응형
어떠한 테이블에서 문자열을 가지고와 다른 테이블을 수정한다면 일반적으로 select문으로 해당 값을 조회하고 update문을 작성하면 그만이다. 하지만 만약 이러한 작업이 여러번 이루어져야 한다면?
예를들어 `employee` 테이블에서 직원의 직무(`job_title`)를 가져와서 `employee_salary` 테이블의 급여 설명(`salary_description`)을 업데이트하는 로직을 생각해보자
일반적인 작업은 'employee'테이블에서 job_title을 조회하고 이 값을 이용하여 `employee_salary` 테이블을 업데이트하는 `UPDATE` 문을 작성한다.
- `employee` 테이블: 직원 정보를 저장하는 테이블
- `employee_salary` 테이블: 직원의 급여 정보를 저장하는 테이블
SELECT job_title FROM employee WHERE employee_id = '101';
-- 결과 Software Engineer
UPDATE employee_salary
SET salary_description = 'Software Engineer'
WHERE employee_id = '101';
한 두개 정도야 이렇게 할 수 있지만 다 수 일 경우 아래와 같이 자동화할 수 있다.
SELECT CONCAT(
'UPDATE employee_salary SET salary_description = ''',
job_title,
''' WHERE employee_id = ''',
employee_id,
''';'
)
FROM employee
WHERE employee_id = '101';
- `CONCAT` 함수: 여러 문자열을 하나로 결합한다.
- 작은따옴표(`'`) 처리: SQL 문 내에서 문자열을 표현하기 위해 중첩된 작은따옴표를 사용한다.
- 실제 아래와 같은 쿼리가 실행되게 된다.
UPDATE employee_salary SET salary_description = 'Software Engineer' WHERE employee_id = '101';
반응형