본문 바로가기

개발

Mysql Table 일괄 삭제 방법.

작업을 하다보면 테이블 전체를 일괄로 삭제해야할때가 있는데요.

 

물론 테이블이 많지 않으면 하나하나 Drop 을 해주면 되지만 그렇지 않은경우가 종종있습니다.

 

 

 

이럴때 사용하면 좋은 팁입니다.

 

 


 

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;

 


 

위에 DB명이라는 부분에 삭제할 데이터베이스이름을 넣고 쿼리를 실행하면됩니다.

 

 

그대로 복사해서 실행하면 아래처럼 실행되니 부분부분 궁금하신분은 참고하세요.

 

 


 

 

mysql> SET @tables = NULL;
Query OK, 0 rows affected (0.00 sec)

 

mysql>  SELECT GROUP_CONCAT(table_schema, '.', table_name) INTO @tables
    ->    FROM information_schema.tables
    ->    WHERE table_schema = 'DB명'; -- specify DB name here.
Query OK, 1 row affected (0.01 sec)

 

mysql>
mysql>  SET @tables = CONCAT('DROP TABLE ', @tables);
Query OK, 0 rows affected (0.00 sec)

 

mysql>  PREPARE stmt FROM @tables;
Query OK, 0 rows affected (0.00 sec)


Statement prepared

mysql>  EXECUTE stmt;
Query OK, 0 rows affected (0.01 sec)

 

mysql>  DEALLOCATE PREPARE stmt;
Query OK, 0 rows affected (0.00 sec)

 

mysql> show tables;
Empty set (0.00 sec)