본문 바로가기

MySQL 테이블 백업 예제 쿼리

반응형

테이블을 백업하고 싶은 경우, 단순히 테이블 구조와 데이터를 다른 테이블로 복사하면 됩니다.
MySQL 기준으로 예제 쿼리는 다음과 같습니다.

1. 기존 테이블 전체를 새 테이블로 백업(테이블명이 g5_write_test 라고가정)

CREATE TABLE g5_write_test_backup AS
SELECT *
FROM g5_write_test;

이 방법은 데이터까지 모두 복사합니다.
단, 인덱스나 AUTO_INCREMENT, 외래키 등은 복사되지 않습니다.

2. 구조와 인덱스까지 완전히 백업

CREATE TABLE g5_write_test_backup LIKE g5_write_test;
INSERT INTO g5_write_test_backup
SELECT *
FROM g5_write_test;

CREATE TABLE ... LIKE : 구조와 인덱스를 복사
INSERT INTO ... SELECT * : 데이터 복사

⚠️ 주의사항:
기존 백업 테이블이 이미 존재하면 CREATE TABLE이 실패합니다. 존재 시 삭제하려면:

DROP TABLE IF EXISTS g5_write_test_backup;

 

그러면 g5_write_test 테이블을 백업하고, 기존 백업 테이블이 있으면 삭제하는 전체 쿼리 시퀀스를 만들어 보겠습니다.

-- 기존 백업 테이블이 있으면 삭제
DROP TABLE IF EXISTS g5_write_test_backup;

-- 테이블 구조와 인덱스를 포함한 백업 생성
CREATE TABLE g5_write_test_backup LIKE g5_write_test;

-- 데이터 복사
INSERT INTO g5_write_test_backup
SELECT *
FROM g5_write_test;

-- 확인용: 백업 완료 메시지
SELECT '백업 완료: g5_write_test_backup 생성됨' AS message;

✅ 설명:
1. DROP TABLE IF EXISTS : 이전 백업이 있으면 삭제
2. CREATE TABLE ... LIKE : 구조와 인덱스 복사
3. INSERT INTO ... SELECT * : 데이터 복사
4. SELECT ... : 완료 확인용

 

원본출처 : https://xpx.kr/home/source/228

반응형

댓글


Copyright ⓒ SmartWeb All rights reserved.