您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

删除与某些通配符匹配的MySQL数据库?

删除与某些通配符匹配的MySQL数据库?

基本思想是在数据库中运行“显示表”,并使用从中获得的结果来选择所需的表。我认为MysqL无法让您使用“显示表??”的结果集执行任何操作,但我可能错了。

这是使用shell的快捷解决方案:

MysqL -u your_user -D your_database_name -e "show tables" -s | 
  egrep "^Whatever_" | 
  xargs -I "@@" echo MysqL -u your_user -D your_database_name -e "DROP TABLE @@"

这将打印出所有shell命令,以删除以“ Whatever_”开头的表。如果您希望它实际执行这些命令,请删除单词“ echo”。

:我忘了解释以上!我不知道您对Shell脚本的熟悉程度,但是可以这样:

MysqL -u your_user -D your_database_name -e "show tables" -s

打印出所有表的列表,标题为“ Tables_in_your_database_name”。该命令的输出通过下一条命令通过管道传递(|符号表示“ piped”,如传递的一样):

egrep "^Whatever_"

搜索单词“ Whatever_”开头的任何行(^符号表示“存在于”),仅打印这些行。最后,我们通过以下命令通过管道传递“ Whatever_ *”表的列表:

xargs -I "@@" echo MysqL -u your_user -D your_database_name -e "DROP TABLE @@"

它采用表名称列表中的每一行,并将其插入而不是命令中的“ @@”

echo MysqL -u your_user -D your_database_name -e "DROP TABLE @@"

因此,如果您有一堆名为“ Whatever_1”,“ Whatever_2”,“ Whatever_3”的表,则生成的命令将是:

echo MysqL -u your_user -D your_database_name -e "DROP TABLE Whatever_1"
echo MysqL -u your_user -D your_database_name -e "DROP TABLE Whatever_2"
echo MysqL -u your_user -D your_database_name -e "DROP TABLE Whatever_3"

输出以下内容

MysqL -u your_user -D your_database_name -e "DROP TABLE Whatever_1"
MysqL -u your_user -D your_database_name -e "DROP TABLE Whatever_2"
MysqL -u your_user -D your_database_name -e "DROP TABLE Whatever_3"

我希望这是足够的细节,而且我不只是要用太多的信息来殴打任何头上的人。祝您好运,并在使用“ DROP TABLE”命令时要当心!

MySQL 2022/1/1 18:50:11 有295人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶