본문 바로가기

IT/DB

기존 데이터 백업 insert 쿼리 만드는 방법

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