如何使用前缀删除多个表

时间:2019-12-05 14:02:17

标签: sql amazon-athena

我有一个包含许多表的数据库db1

  • v1_tab_1
  • ...
  • v1_tab_n
  • v2_tab_1
  • ...
  • v2_tab_n

例如,我想删除所有带有前缀v1_的表 像

DROP TABLE IF EXISTS v1_*;

你有什么主意吗?

1 个答案:

答案 0 :(得分:1)

不幸的是,这与Athena SQL无关。

但是,您可以使用Glue API实现类似的功能,例如通过AWS CLI

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

上面的命令列出了us-east-1区域中名为“ my_database”的数据库中的所有表,并按“ v1_”进行过滤(您可能希望通过正则表达式进行过滤,以确保仅在开头进行匹配) 。然后,它将匹配的表名一个接一个地传送到删除它们的命令中。