생활코딩/DataBase

[MySQL] 데이터 삭제 시 백업 테이블로 데이터 옮겨놓기

hayjo 2020. 12. 1. 12:10
mysql> INSERT INTO topic_del SELECT * FROM topic WHERE id = 2;

[참조 페이지] extbrain.tistory.com/116

 

[MySQL] 테이블 구조와 데이터 복사 (Table Structure and Data Copy)

▶MySQL 테이블 구조와 데이터 복사 (Table Structure and Data Copy) ▶설명 현재 생성된 테이블을 복사하는 방법에 대해서 정리하도록 하겠습니다. 이 글에서는 총 4가지를 설명하도록 하겠습니다. 테이

extbrain.tistory.com

기존 데이터를 삭제할 때, 백업해둘 필요성이 생겼다.

우선 백업용 테이블을 생성한다. 기존 테이블과 구조가 같아야 하므로 아래와 같이 복사한다.

 

mysql> CREATE TABLE IF NOT EXISTS topic_del LIKE topic;
Query OK, 0 rows affected (0.24 sec)

 

삭제할 데이터를 추가한다. 예를 들어 id 2번 데이터라고 하면,

mysql> INSERT INTO topic_del SELECT * FROM topic WHERE id = 2;
Query OK, 1 row affected (0.01 sec)
Records: 1  Duplicates: 0  Warnings: 0

 

이제 기존 테이블에서 해당 데이터를 지운다.

mysql> DELETE FROM topic WHERE id = 2;
Query OK, 1 row affected (0.03 sec)

 

만약 데이터 백업이 필요하다면, 백업 테이블인 topic_del에서 해당 데이터를 다시 가져오면 된다.

mysql> INSERT INTO topic SELECT * FROM topic_del WHERE id = 2;
Query OK, 1 row affected (0.01 sec)
Records: 1  Duplicates: 0  Warnings: 0