Как удалить все таблицы в MySQL без удаления базы данных

Как удалить все таблицы в MySQL без удаления базы данных
/assets/blog/authors/asanov_small.jpg
Ildar Asanov
#mysql#db

!!! Пожалуйста, будьте осторожны и осознанно подходите к тому, чтобы удалять какие-либо ресурсы в stable и production окружениях.

Есть два способа как удалить все таблицы в MySQL без удаления базы данных

1. Использование mysqldump

Самый простой способ удалить таблицы MySQL, заключается в использовании mysqldump:

mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | grep ^DROP | mysql -u[USERNAME] -p[PASSWORD] [DATABASE]

Переменные, которые указаны выше, [USERNAME], [PASSWORD] и [DATABASE] это опции вашей базы данных. Вы можете менять USERNAME, PASSWORD и DATABASE, как вам угодно.

2. Использование SQL-запросов

Второй способ, используя некоторые конструкции MySQL для формирования списка таблиц и последующего их удаления:

SET FOREIGN_KEY_CHECKS = 0;
SET @tables = NULL;

SELECT GROUP_CONCAT(table_schema, '.', table_name)
INTO @tables
FROM information_schema.tables 
WHERE table_schema = 'database_name'; -- specify DB name here.

SET @tables = CONCAT('DROP TABLE IF EXISTS ', @tables);

PREPARE stmt FROM @tables;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

SET FOREIGN_KEY_CHECKS = 1;

Вышеуказанный код скопирован и немного изменен, с учетом некоторых правок, с сайта stackoverflow.com

Материалы страницы:

More Stories