반응형
INSERT INTO ... SELECT 구문을 활용하여 데이터를 한 테이블에서 다른 테이블로 쉽게 이동하는 방법
시나리오 설명
상상해보죠, 우리에게는 employees와 former_employees 두 개의 테이블이 있다고 합니다.
employees 테이블은 현재 직원들의 정보를, former_employees는 이전 직원들의 정보를 저장합니다.
이제, 우리의 목표는 employees 테이블에서 특정 조건을 만족하는 직원들을 former_employees 테이블로 이동시키는 것입니다.
테이블 구조
- employees
- id: 직원 ID
- name: 이름
- department: 부서
- hire_date: 고용 날짜
- former_employees
- id: 직원 ID
- name: 이름
- department: 부서
- end_date: 퇴사 날짜
INSERT INTO ... SELECT 구문 사용 예시
아래는 employees 테이블에서 2024년 이전에 고용된 모든 직원을 former_employees 테이블로 이동시키는 SQL 문의 예시입니다. 이 경우, end_date는 현재 날짜로 설정됩니다.
INSERT INTO former_employees (id, name, department, end_date)
SELECT id, name, department, CURDATE()
FROM employees
WHERE YEAR(hire_date) < 2024;
작동 원리
- INSERT INTO former_employees (...): former_employees 테이블에 데이터를 삽입하겠다고 선언합니다.
- SELECT id, name, department, CURDATE() FROM employees WHERE YEAR(hire_date) < 2024: employees 테이블에서 2024년 이전에 고용된 직원들의 id, name, department를 선택하고, CURDATE() 함수를 사용하여 현재 날짜를 end_date로 설정합니다.
이처럼 INSERT INTO ... SELECT 구문을 사용하면 한 테이블에서 다른 테이블로 데이터를 효율적으로 이동할 수 있습니다.
반응형
'IT > DB' 카테고리의 다른 글
MSSQL과 MySQL에서 현재 시간 INSERT하기 (0) | 2024.01.27 |
---|---|
MSSQL에서 테이블 컬럼 추가 및 속성 변경하기 (0) | 2024.01.25 |
[MYSQL] INDEX (0) | 2022.10.19 |
[MYSQL] 외래키 속성 변경, 수정, 삭제 및 조회하기 (0) | 2022.09.28 |
[MYSQL] AJAX JSON 파싱 오류 디버깅, 개행문자 삭제 (0) | 2022.06.27 |