我有许多不同名称的数据库。 我想删除多个数据库,是否有任何命令,因为db的所有名称都不同。
例如:mysql db,Test db,live db。
答案 0 :(得分:4)
据我所知,没有特定的命令/查询来删除多个数据库,而名称中没有特定的模式。甚至我被要求多次帮忙。所以我研究并发现没有具体的解决方案。然后我尝试了下面的黑客攻击。它没有给人太多麻烦。也许它对你也有帮助。
使用以下命令获取所有数据库。
SHOW DATABASES ;
将所有这些文件粘贴到Excel /其他文本文件中(我更喜欢NPP)。保留要从列表中删除的唯一名称。别忘了从列表中删除你的工作数据库。
在这些名称前添加DROP DATABASE
。
这很简单。复制&将所有这些粘贴到工作台中。您可以一次性执行所有这些操作。
答案 1 :(得分:3)
不幸的是,除非你创建自己的功能,否则没有这样的东西。
答案 2 :(得分:3)
如果您创建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
答案 3 :(得分:1)
首先运行此查询以生成放置命令列表:
select CONCAT('drop database `', schema_name,'`;') as database_name from information_schema.schemata where schema_name like '%DATABASES_TO_REMOVE%' order by schema_name;
然后复制该查询的输出行并粘贴到查询窗口中
在我的情况下,我需要删除结果命令查询周围的单引号('),我使用简单的find + replace(通常是Ctrl + H,将'替换为
并执行(在我的案例中突出显示所有drop语句)!
答案 4 :(得分:0)
简单的bash脚本可以完成这项工作
Arrays.sort(intervals, new Comparator<Interval>(){
public int compare(Interval a, Interval b){
return a.start - b.start;
}
});
Arrays.sort(intervals, (a, b) -> a.start - b.start);
在此提供用户名,密码和IP地址。