En général, j'ouvre Terminal.app et me connecte à une base de données MySQL distante.
Ensuite, j'utilise cette commande pour supprimer une table:
mysql> drop table [table name];
Mais ce dont j'ai besoin, c'est de la ligne de commande pour supprimer toutes les tables de la base de données.
Si j'utilise:
mysql> drop database [database name];
Je vais détruire complètement la base de données et je ne pourrai plus créer de tables. Ai-je raison?
Vous pouvez supprimer la base de données, puis la recréer immédiatement:
mysql> drop database [database name];
mysql> create database [database name];
Vous pouvez également utiliser un script pour supprimer chaque table de la base de données.
Vous pouvez essayer la commande suivante:
mysqldump --no-data --add-drop-table DB_NAME | grep ^DROP | mysql -v DB_NAME
Ou:
mysql --silent --skip-column-names -e "SHOW TABLES" DB_NAME | xargs -L1 -I% echo 'DROP TABLE `%`;' | mysql -v DB_NAME
Où DB_NAME
est le nom de votre base de données. Les informations d'identification de la base de données que vous pouvez spécifier dans ~/.my.cnf
ou en les ajoutant à la commande (par exemple -uroot -proot
).
Cette méthode présente certains avantages par rapport à la suppression et à la création de la base de données au cas où votre utilisateur de la base de données ne serait pas autorisé à la supprimer.
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