首先运行此查询以生成删除命令列表:
select CONCAT('drop database `', schema_name,'`;') as database_name from information_schema.schemata where schema_name like '%DATABASES_TO_REMOVE%' order by schema_name;
然后复制该查询的输出行并粘贴到查询窗口中
就我而言,然后我需要删除结果命令查询周围的单引号 ('),我使用简单的查找 + 替换(通常按 Ctrl + H,将 ' 替换为 <empty >)
并执行(突出显示我的例子中的所有 drop 语句)!
如果您创建一个 shell 脚本,这应该删除所有数据库。您将需要对其进行编辑以满足您的需要。
DBUSER='user'
DBPASS='password'
SQLFILE='/path/to/file/databases.sql'
echo '* Dropping ALL databases'
DBS="$(mysql -u$DBUSER -p$DBPASS -Bse 'show databases' | grep -v Database | grep -v database | grep -v mysql | grep -v information_schema)"
for db in $DBS; do
echo "Deleting $db"
mysql -u$DBUSER -p$DBPASS -Bse "drop database $db; select sleep(0.1);"
done
Run Code Online (Sandbox Code Playgroud)
据我所知,在名称中没有特定模式的情况下,没有特定的命令/查询可以删除多个数据库。甚至我多次被要求帮忙。所以我研究了一下,没有找到具体的解决办法。然后我尝试了下面的技巧。它的工作没有带来太多麻烦。也许它也可以对你有所帮助。
使用以下命令获取所有数据库。
SHOW DATABASES ;
Run Code Online (Sandbox Code Playgroud)
将它们全部粘贴到 excel/其他一些文本文件中(我更喜欢 NPP)。保留要从列表中删除的唯一名称。不要忘记从列表中删除您的工作数据库。
DROP DATABASE在这些名字前面加上。
就这么简单。将所有这些复制并粘贴到您的工作台中。您可以一次性执行所有这些操作。
| 归档时间: |
|
| 查看次数: |
14544 次 |
| 最近记录: |