본문 바로가기
MySql

MySQL DROP 데이터베이스 권한없이 명령 줄에서 모든 MySQL 테이블을 제거하는 방법은 무엇입니까?

by 베이스 공부 2021. 1. 29.
반응형

명령 프롬프트를 사용하여 Windows MySQL의 모든 테이블을 삭제하려면 어떻게합니까? 이 작업을 수행하려는 이유는 사용자가 데이터베이스 삭제에 액세스 할 수 있지만 데이터베이스 자체를 다시 만들 수있는 액세스 권한이 없기 때문입니다. 따라서 수동으로 테이블을 삭제해야합니다. 한 번에 모든 테이블을 삭제하는 방법이 있습니까? 대부분의 테이블은 외래 키와 연결되어 있으므로 특정 순서로 삭제해야합니다.

 

해결 방법

 

다음과 같은 문을 생성 할 수 있습니다. DROP TABLE t1, t2, t3, ... 그런 다음 준비된 문을 사용하여 실행할 수 있습니다.

SET FOREIGN_KEY_CHECKS = 0; 
SET @tables = NULL;
SELECT GROUP_CONCAT('`', table_schema, '`.`', table_name, '`') INTO @tables
  FROM information_schema.tables 
  WHERE table_schema = 'database_name'; -- specify DB name here.

SET @tables = CONCAT('DROP TABLE ', @tables);
PREPARE stmt FROM @tables;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET FOREIGN_KEY_CHECKS = 1; 

 

참조 페이지 https://stackoverflow.com/questions/12403662

 

 

반응형

댓글