[Database] 쿼리 한번으로 데이터베이스의 테이블 전체 삭제

Date:     Updated:

카테고리:

태그:

평소에는 서버사이드 언어로 php를 사용하며 쿼리를 만들어놓고, 클라이언트에서 php 파일로 요청을 보내는 방식으로 작업을 하였습니다.

이번에는 Asp.net Core 8.0을 사용하여 서버를 구성하다 보니 .net의 ORM 인 EF core 를 사용하게 되었습니다.

ORM 구성 중, 디비를 백업하고 자동으로 생성하게 할 수 있는 Migration기능을 만드는 중에, 테이블이 잘못만들어지거나, Enitity의 구성이 달라지면 디비의 테이블들을 다시 지우고 만들어야 하는 상황이 잦았습니다.

처음한번은 그냥 Drop Table [테이블명]을 사용해서 메모장에 적어놓고 복붙 형식으로 테이블들을 지웠습니다.

그러다가 더 좋은 방법 없을까 하다가 쿼리를 짜서 디비의 테이블들을 모두 삭제하는 쿼리를 찾게 되었습니다.

아래의 쿼리에서 DB 이름만 바꿔주시면 됩니다.

-- MySQL drop all tables in database

SET FOREIGN_KEY_CHECKS = 0;
SET @tables = NULL;
SELECT GROUP_CONCAT(table_schema, '.', table_name) INTO @tables
    FROM information_schema.tables
    WHERE table_schema = 'DB이름'; -- specify DB name here.
SET @tables = CONCAT('DROP TABLE ', @tables);
PREPARE stmt FROM @tables;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

Database 카테고리 내 다른 글 보러가기

첫 번째 글입니다 가장 최근 글입니다

댓글 남기기