Удалить все таблицы в базе данных Mysql | Drop all tables in mysql

Всем привет! Сегодня я вам кратко расскажу, как удалить все таблицы разом в MySQL, не удаляя базу данных.

Есть два способа это сделать.

Самый простой способ удалить таблицы 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, как вам угодно.

Второй способ, используя некоторые конструкции 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

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


Комментарии

Популярные сообщения из этого блога

Как преобразовать строку в массив в ClickHouse / How to transform string to array in ClickHouse

Как разложить массив на несколько строк в ClickHouse

Экспорт одной таблицы базы данных или mysqldump одной таблицы (MySQL)