300x250
데이터 삭제 시 백업용으로 데이터 복구를 위해 다시 insert가 필요한 케이스가 있는데
임시테이블을 만들어서 해당 데이터를 테이블에 넣는 방법과 insert 쿼리를 리스트로 만들어서 필요시
쿼리를 실행시켜서 데이터를 다시 넣어서 복구하는 방법이 있습니다.
테이블을 자유롭게 생성하고 삭제하기 어려운 환경이라 1000건 정도 데이터에 대해서
아래와 같이 간편하게 insert 쿼리를 만드는 방법이 있다
INSERT 쿼리 생성 스크립트 만들기
INSERT 구문을 생성하려면 다음 단계를 따릅니다:
3.1. 쿼리 출력 형식으로 데이터 생성
MySQL의 'CONCAT' 함수를 사용해 각 행에 대해 INSERT 쿼리를 출력합니다.
구문
SELECT CONCAT( 'INSERT INTO 백업_테이블명 (컬럼1, 컬럼2, 컬럼3) VALUES (', "'", 컬럼1, "', '", 컬럼2, "', '", 컬럼3, "'", ');' ) AS insert_query FROM 원본_테이블명;
예제
employees 테이블의 데이터를 employees_backup으로 복사하기 위한 INSERT 쿼리 생성:
SELECT CONCAT( 'INSERT INTO employees_backup (id, name, position, salary) VALUES (', "'", id, "', '", name, "', '", position, "', ", salary, ");" ) AS insert_query FROM employees;
결과:
INSERT INTO employees_backup (id, name, position, salary) VALUES ('1', 'Alice', 'Developer', 60000); INSERT INTO employees_backup (id, name, position, salary) VALUES ('2', 'Bob', 'Manager', 80000); INSERT INTO employees_backup (id, name, position, salary) VALUES ('3', 'Charlie', 'Analyst', 55000);
결과 활용
- 출력된 INSERT 쿼리를 복사하여 다른 데이터베이스나 환경에서 실행할 수 있습니다.
concat 함수를 이용하여 insert 쿼리를 정말 간편하게 만들 수 있었습니다.
기존 테이블의 데이터들이 각 컬럼에 매핑되어서 정말 편하게 몇백개의 insert 쿼리를 바로 만들어주었습니다.
insert 나 update, delete 등 쿼리리스트가 필요한 경우 사용하기 좋은 방법으로 추천!
300x250
'IT > DB' 카테고리의 다른 글
데이터 삭제 delete와 truncate 차이는? (0) | 2024.12.07 |
---|---|
left join 과 left outer join 차이는? (2) | 2024.12.05 |
MySQL SQL 오류코드 Error Code: 1046. No database selected Select the default DB to be used by double-clicking its name in the SCHEMAS list in the sidebar (1) | 2024.12.05 |
AND EXISTS (SELECT 1 FROM 테이블) 쿼리 조건 뜻? (0) | 2024.12.04 |
group by a, group by a,b 차이 (0) | 2024.12.03 |