Coding Planet

[postgreSQL] 다중 업데이트 작업을 효율적으로 수행하는 방법 -문자열 합치기(concat), 작은 따옴표 처리 본문

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';



 

반응형
Comments