有没有办法用命令行从通配符中删除表?假设我有一组我要删除的日期表,使用相同的前缀 - 我可以一次性删除它们,而无需编写自己的shell脚本吗?
答案 0 :(得分:6)
不是最好的,但是您可以通过以下方式生成查询以删除表:
select concat("drop table ",table_schema,".", table_name, ";" )
from <insert_your_dataset_name>.INFORMATION_SCHEMA.TABLES
where table_name like "INSERT_YOUR_TABLE_NAME_%"
order by table_name desc
运行后,单击“保存结果”,从下拉列表中选择“复制到剪贴板”。
答案 1 :(得分:3)
不,要编写脚本。您可以一次删除整个数据集,但无法使用通配符删除数据集中的表的子集。
答案 2 :(得分:0)
在@henry回答之后,我无法在sql中执行此操作(不知道为什么),因此我修改了concat来创建一堆将所有内容一起输入到shell的行
select concat("bq rm -f -t ",table_schema,".", table_name, ";" )
from <insert_your_dataset_name>.INFORMATION_SCHEMA.TABLES
where table_name like "INSERT_YOUR_TABLE_NAME_%"
order by table_name desc
然后只是“保存结果” =>“复制到剪贴板” =>打开BQ Shell =>粘贴!