MySQL Table Space 내 모든 테이블 삭제하기
MySQL 의 테이블 스페이스는 놔두고 그 안의 모든 table 만 삭제하는 방법.
삭제 코드
다음 코드를 drop_table.sql 이라는 파일로 저장합니다.
drop_table.sql
SET FOREIGN_KEY_CHECKS = 0; SET GROUP_CONCAT_MAX_LEN=32768; SET @tables = NULL; SELECT GROUP_CONCAT('`', table_name, '`') INTO @tables FROM information_schema.tables WHERE table_schema = (SELECT DATABASE()); SELECT IFNULL(@tables,'dummy') INTO @tables; SET @tables = CONCAT('DROP TABLE IF EXISTS ', @tables); PREPARE stmt FROM @tables; EXECUTE stmt; DEALLOCATE PREPARE stmt; SET FOREIGN_KEY_CHECKS = 1;
실행
mysql command client 에서 삭제하려는 계정(Ex: user) 과 암호(Ex: secret), 테이블 스페이스를 입력하고 입력 파이프로 drop_table.sql 파일을 지정하면 모든 테이블이 삭제됩니다.
mysql -u user -psecret table_space < drop_table.sql