Sql 如何删除多个带有前缀的表
我有一个数据库db1,其中包含许多表Sql 如何删除多个带有前缀的表,sql,amazon-athena,Sql,Amazon Athena,我有一个数据库db1,其中包含许多表 v1_选项卡_1 v1\u选项卡\u n v2\u表1 v2\u选项卡\u n 例如,我想删除所有前缀为v1\u的表 差不多 DROP TABLE IF EXISTS v1_*; 你知道吗?不幸的是,这不可能用Athena SQL实现 但是,您可以使用Glue API实现类似的功能,例如: 上面的命令列出了us-east-1区域中名为“my_database”的数据库中的所有表,并按“v1_”对它们进行筛选(您可能希望按regex进行筛选,以确保它
- v1_选项卡_1
- v1\u选项卡\u n
- v2\u表1
- v2\u选项卡\u n
DROP TABLE IF EXISTS v1_*;
你知道吗?不幸的是,这不可能用Athena SQL实现 但是,您可以使用Glue API实现类似的功能,例如:
上面的命令列出了us-east-1区域中名为“my_database”的数据库中的所有表,并按“v1_”对它们进行筛选(您可能希望按regex进行筛选,以确保它只在开始时匹配)。然后,它将匹配的表名一个接一个地传输到一个命令中,该命令将删除这些表名。您可以使用动态SQL执行此操作,并动态生成删除查询。有很多表要删除,这听起来像是一个设计缺陷。也许你应该重新设计。
aws glue get-tables \
--region us-east-1 \
--database-name my_database \
--query 'TableList[].Name' \
--output text \
| grep -F v1_ \
| xargs -n 1 aws glue delete-table \
--region us-east-1 \
--database-name my_database \
--name