커맨드 라인에서 모든 MySQL 테이블을 삭제하는 방법은 무엇입니까? 데이터베이스에 연결합니다. 그런

일반적으로 Terminal.app을 열고 원격 MySQL 데이터베이스에 연결합니다.

그런 다음이 명령을 사용하여 테이블을 삭제합니다.

mysql> drop table [table name];

그러나 필요한 것은 데이터베이스의 모든 테이블을 삭제하는 명령 줄입니다.

내가 사용하는 경우 :

mysql> drop database [database name];

데이터베이스를 완전히 파괴하면 테이블을 다시 만들 수 없습니다. 내가 맞아?



답변

데이터베이스를 삭제 한 후 즉시 다시 작성할 수 있습니다.

mysql> drop database [database name];
mysql> create database [database name];

또는 스크립트를 사용하여 데이터베이스에서 각 테이블을 삭제 (drop) 할 수 있습니다.


답변

다음 명령을 시도 할 수 있습니다.

mysqldump --no-data --add-drop-table DB_NAME | grep ^DROP | mysql -v DB_NAME

또는:

mysql --silent --skip-column-names -e "SHOW TABLES" DB_NAME | xargs -L1 -I% echo 'DROP TABLE `%`;' | mysql -v DB_NAME

DB_NAME데이터베이스 이름은 어디에 있습니까 ? 데이터베이스 자격 증명을 지정하거나 ~/.my.cnf명령에 추가 할 수 있습니다 (예 🙂 -uroot -proot.

이 방법은 데이터베이스 사용자에게 데이터베이스를 삭제할 권한이없는 경우 데이터베이스를 삭제하고 작성하는 것보다 몇 가지 장점이 있습니다.


답변

mysql -u USERHERE -pPASSWORDHERE --silent --skip-column-names -e "SHOW TABLES" DATABASENAMEHERE | xargs -L1 -I% echo 'SET FOREIGN_KEY_CHECKS = 0; DROP TABLE%;' | mysql -u USERHERE -pPASSWORDHERE -v DATABASENAMEHERE


답변