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

标签 mysql database

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

最佳答案

您可以从 information_schema 中获取具有特定名称的表。

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

select table_name from information_schema.tables;

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

select concat('drop table ', table_name, ';')
  from information_schema.tables;

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

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

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

关于MySQL - 从大数据库中删除一些特定的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5996617/

相关文章:

php - 创建用户注册网页

php - 如何在某些条件下从mysql表中获取字段的最大值和平均值

database - 带游标的 pl/sql varray

php - 在邮件表单上显示随机生成的字符

php - PHP 5.x 中是否有任何简单的方法可以在 RecordSet 上回显任何类型的数据?

sql - 检测超出日期间隔的重复项

python - SQL 错误 1054, "Unknown column ' xxxxx' in 'field list' “在带有占位符的 Python 中

php - 在 Snow Leopard 上恢复为默认的 Apache、PHP、MySQL 设置

php - 谷歌地图商店定位器

mysql - 如何将 Angular、Nodejs 和 Mysql Web 应用程序部署到 Heroku?