Tuesday, February 3, 2009

Удалить все таблицы в базе MySQL одной строкой


Как удалить одной строкой (в том смысле что не писать кучу запросов типа DROP TABLE tablename;) все таблицы в базе данных MySQL. Кажется что может быть проще чем DROP ALL TABLES;. Ан нет! Нет такого запроса. Чтобы найти решение не пришлось долго рыться в бескрайнем интернете :) Делюсь  решением с вами.

mysql --silent --skip-column-names -u[USERNAME] -p[PASSWORD] [DATABASE] -e "show tables" | \
gawk '{print "drop table " $1 ";"}' | mysql -u [USERNAME] -p[PASSWORD] [DATABASE]

via

Второе решение этой задачи не заставило себя долго ждать
mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | \
grep ^DROP | mysql -u[USERNAME] -p[PASSWORD] [DATABASE]

via. Какие то проблемы с этим вариантом есть с Windows... ну а кто этим занимается в винде? :)
Пользуйтесь!

0 comments:

Post a Comment