MySQL table 일괄 삭제 하기
페이지 정보
본문
CMS(그누보드,XE,wordpress)등을 사용하다가 데이터베이스는 놔두고 테이블만 일괄 삭제후 다시 설치할 때 유용합니다.
drop table * 또는 all 이렇게 해서 지워지면 좋겠지만 안되는 방법이니 다른 방법을 써야 합니다.
Mysql 에서 데이터베스는 놔두고 테이블만을 일괄 적으로 삭제할때 사용하기 좋은 방법입니다
1. MariaDB 로그인
[root@localhost ~]# mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 13
Server version: 10.1.25-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
2. 내용 붙여 넣기
아래 내용을 복사해서 한번에 실행시킵니다.
SET @tables = NULL;
SELECT GROUP_CONCAT(table_schema, '.', table_name) INTO @tables
FROM information_schema.tables
WHERE table_schema = '디비명';
SET @tables = CONCAT('DROP TABLE ', @tables);
PREPARE stmt FROM @tables;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
3. 적용된 모습
MariaDB [(none)]> SET @tables = NULL;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> SELECT GROUP_CONCAT(table_schema, '.', table_name) INTO @tables
-> FROM information_schema.tables
-> WHERE table_schema = '디비명';
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> SET @tables = CONCAT('DROP TABLE ', @tables);
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> PREPARE stmt FROM @tables;
Query OK, 0 rows affected (0.00 sec)
Statement prepared
MariaDB [(none)]> EXECUTE stmt;
Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]> DEALLOCATE PREPARE stmt;
Query OK, 0 rows affected (0.00 sec)
4. 테이블이 지워졌는지 확인
MariaDB [(none)]> use 디비명;
Database changed
MariaDB [디비명]> show tables;
Empty set (0.00 sec)
MariaDB [디비명]>
참고자료
http://bizmark.co.kr/archives/320
drop table * 또는 all 이렇게 해서 지워지면 좋겠지만 안되는 방법이니 다른 방법을 써야 합니다.
Mysql 에서 데이터베스는 놔두고 테이블만을 일괄 적으로 삭제할때 사용하기 좋은 방법입니다
1. MariaDB 로그인
[root@localhost ~]# mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 13
Server version: 10.1.25-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
2. 내용 붙여 넣기
아래 내용을 복사해서 한번에 실행시킵니다.
SET @tables = NULL;
SELECT GROUP_CONCAT(table_schema, '.', table_name) INTO @tables
FROM information_schema.tables
WHERE table_schema = '디비명';
SET @tables = CONCAT('DROP TABLE ', @tables);
PREPARE stmt FROM @tables;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
3. 적용된 모습
MariaDB [(none)]> SET @tables = NULL;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> SELECT GROUP_CONCAT(table_schema, '.', table_name) INTO @tables
-> FROM information_schema.tables
-> WHERE table_schema = '디비명';
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> SET @tables = CONCAT('DROP TABLE ', @tables);
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> PREPARE stmt FROM @tables;
Query OK, 0 rows affected (0.00 sec)
Statement prepared
MariaDB [(none)]> EXECUTE stmt;
Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]> DEALLOCATE PREPARE stmt;
Query OK, 0 rows affected (0.00 sec)
4. 테이블이 지워졌는지 확인
MariaDB [(none)]> use 디비명;
Database changed
MariaDB [디비명]> show tables;
Empty set (0.00 sec)
MariaDB [디비명]>
참고자료
http://bizmark.co.kr/archives/320
댓글목록
등록된 댓글이 없습니다.