В MySQL у меня есть несколько таблиц, названных так:

taggregate_temp_1364792160
taggregate_temp_1364795760
taggregate_temp_1364799360
taggregate_temp_1364802960
taggregate_temp_1364806560
taggregate_temp_1364810160
taggregate_temp_1364813760
taggregate_temp_1364817360
taggregate_temp_1364820960
taggregate_temp_1364824560
taggregate_temp_1364828160
taggregate_temp_1364831760
taggregate_temp_1364835360
taggregate_temp_1364838960
taggregate_temp_1364842560
taggregate_temp_1364846160
taggregate_temp_1364849760
taggregate_temp_1364853360

Мне нужно удалить все таблицы, начинающиеся с: taggregate_temp_ сразу

1 ответ1

0

Если все временные таблицы находятся в mydb , выполните следующее:

SELECT CONCAT('DROP TABLE ',
GROUP_CONCAT(CONCAT(table_schema,'.',table_name)),';')
FROM information_schema.tables WHERE table_schema='mydb'
AND table_name like 'taggregate_temp%';
PREPARE s1 FROM @dropcmd; EXECUTE s1; DEALLOCATE PREPARE s1;

Я сделал ту же технику в другом моем посте в DBA StackExchange. Этот пост также демонстрирует выполнение кода.

Попробуйте!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .