Как быстро удалить или очистить таблицы в базе MySQL

При обслуживании сайтов, бывают случаи, когда нужно быстро очистить таблицы в базе данных MySQL или полностью удалить их. Не всегда удобно заходить в phpMyAdmin и выполнять эту операцию через панель. Тем более, если вы вообще не пользуетесь phpMyAdmin и всё это можно сделать через консоль всего одним запросом. Кроме того, такой запрос можно отправить из BASH скрипта автоматически, мало ли для чего это может понадобиться.

Для начала, давайте определимся, где вам нужно будет прописать свои данные в запросе для доступа к вашей базе MySQL. Вам надо заменить вот это:

  1. [USER_BASE] — имя пользователя базы данных MySQL;
  2. [PASS_BASE] — пароль от базы;
  3. [NAME_BASE] — имя БД MySQL.

Итак, случай первый. Нам нужно очистить все таблицы в базе данных без удаления самих таблиц и не нарушая их структуру.

Выполняем такой запрос:

mysql -Nse 'show tables' -u[USER_BASE] -p[PASS_BASE] [NAME_BASE] | while read table; do mysql -e "TRUNCATE TABLE $table" mysql -Nse 'show tables' -u[USER_BASE] -p[PASS_BASE] [NAME_BASE]; done

Случай второй. Нам нужно полностью удалить все таблицы из базы данных MySQL одним запросом.

Выполняем:

mysql -Nse 'show tables' -u[USER_BASE] -p[PASS_BASE] [NAME_BASE] | while read table; do mysql -e "DROP TABLE $table" mysql -Nse 'show tables' -u[USER_BASE] -p[PASS_BASE] [NAME_BASE]; done

Как вы, наверное, уже заметили, для полного удаления всех таблиц мы всего лишь изменяем в запросе команду «TRUNCATE TABLE» на «DROP TABLE».

Вот собственно и всё, без лишних заморочек с написанием объёмных скриптов.