MySQL - 从大数据库中删除一些特定的表

mak*_*yol 2 mysql database

我们如何从数据库中删除一些特定的表.例如,我有一个包含超过20.000个表的数据库,我需要删除名称中包含一些特定字符串的数据库.那我该怎么办呢?有没有办法从数据库中获取所有表名?

Pab*_*ruz 7

您可以从中获取具有某些名称的表格information_schema.

这是您获取数据库中表的列表的方法:

select table_name from information_schema.tables;
Run Code Online (Sandbox Code Playgroud)

考虑到这一点,您可以生成一个脚本来删除所需的表:

select concat('drop table ', table_name, ';')
  from information_schema.tables;
Run Code Online (Sandbox Code Playgroud)

然后复制该脚本并将其粘贴到SQL解释器上.

您还可以根据名称或数据库过滤表:

select concat('drop table ', table_name, ';')
  from information_schema.tables
 where table_name like 'abc%'
   and table_schema = 'myDatabase'; --db name
Run Code Online (Sandbox Code Playgroud)