MySQL: как удалить несколько таблиц с помощью одного запроса?

Я хочу легко удалить несколько таблиц без фактического перечисления имен таблиц в запросе на удаление, а таблицы, которые нужно удалить, имеют префикс: «wp_»

Я использовал запрос, очень похожий на Angelin's. Если у вас больше нескольких таблиц, нужно увеличить максимальную длину group_concat . В противном случае запрос будет barf на усеченной строке, возвращаемой group_concat .

Это мои 10 центов:

 -- Increase memory to avoid truncating string, adjust according to your needs SET group_concat_max_len = 1024 * 1024 * 10; -- Generate drop command and assign to variable SELECT CONCAT('DROP TABLE ',GROUP_CONCAT(CONCAT(table_schema,'.',table_name)),';') INTO @dropcmd FROM information_schema.tables WHERE table_schema='databasename' AND table_name LIKE 'my_table%'; -- Drop tables PREPARE str FROM @dropcmd; EXECUTE str; DEALLOCATE PREPARE str; 

Просто поделитесь одним из решений:

mysql> SELECT CONCAT ("DROP TABLE",
GROUP_CONCAT (TABLE_NAME)) AS stmt

FROM information_schema.TABLES

WHERE TABLE_SCHEMA = "your_db_name" И TABLE_NAME LIKE "условие ur" в outfile '/tmp/a.txt';

mysql> source /tmp/a.txt;

Простое решение без риска ошибки:

mysqldump создает файл, содержащий команду DROP например

 DROP TABLE IF EXISTS `wp_matable`; 

« grep » с « DROP TABLE wp_ » дают нам команды для выполнения

поэтому падение производится по тезисам trhee lines (вы можете отредактировать drop.sql, чтобы проверить, какие таблицы будут отброшены раньше)

 mysqldump -u user -p database > dump.sql grep "DROP TABLE `wp_" dump.sql > drop.sql mysql -u user -p database < drop.sql 

Будьте осторожны с «_», нужно писать с «\» раньше в Mysql:

 SELECT CONCAT('DROP TABLE',GROUP_CONCAT(CONCAT(table_schema,'.',table_name)),';') INTO @dropcmd FROM information_schema.tables WHERE table_schema='databasename' AND table_name LIKE '**my\\_table**%'; 

Для отличного решения mysqldump лучше использовать опцию –skip-quote-names

 mysqldump --skip-quote-names -u user -p database > dump.sql grep "DROP TABLE wp_" dump.sql > drop.sql mysql -u user -p database < drop.sql 

Вы избавляетесь от обратных ссылок в именах таблиц. Компонент grep не будет работать в некоторых средах с обратными окнами.

Удаление одной таблицы в mysql:

ТАБЛИЦА DROP TABLE_NAME;

Перейдите в папку c: \ xampp \ mysql \ data \ your folder

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

благодаря