Вам нужно будет запустить отдельный оператор DROP для каждой таблицы.
Мы можем запросить information_schema.tables, чтобы получить список таблиц...
SELECT t.table_schema, t.table_name
FROM information_schema.tables t
WHERE t.table_name = 'tablename_i_want_to_drop'
AND t.table_schema NOT IN ('mysql','information_schema','performance_schema')
ORDER BY t.table_schema, t.table_name
И мы можем использовать выражение вместо столбцов...
SELECT CONCAT('DROP TABLE `',t.table_schema,'`.`',t.table_name,'` ;') AS `-- stmt`
FROM ...
Затем мы можем взять этот набор результатов и сохранить его, а затем выполнить операторы из скрипта. Клиент командной строки MySQL позволяет нам получить скрипт...
https://dev.mysql.com/doc/refman/5.7/en/mysql-batch-commands.html
Клиент, который вы используете, может иметь аналогичную функцию для выполнения скрипта. Или каким-то образом скопируйте набор результатов и вставьте его в окно запроса.
В хранимой программе MySQL мы могли бы запустить тот же запрос (чтобы получить список таблиц), а затем зациклить их (используя КУРСОР) и ПОДГОТОВИТЬ, ВЫПОЛНИТЬ и DEALLOCATE PREPARE для выполнения операторов «удалить таблицу». Это вариант, но на один раз создать сценарий было бы проще.
person
spencer7593
schedule
26.04.2017