【发布时间】:2021-07-17 21:22:31
【问题描述】:
如何使用 SELECT 语句的输出作为表名删除几个表(例如 1 - 3)?这可能是标准 SQL,但具体而言,我使用的是通过 Apache Zeppelin 访问的 Apache Impala SQL。
所以我有一个名为 tables_to_drop 的表,其中有一列名为“table_name”。这将有一个到几个条目,每个条目都有另一个临时表的名称,该表是由其他进程生成的。作为清理工作的一部分,我需要删除这些名称在“tables_to_drop”表中列出的临时表。
从概念上讲,我正在考虑一个 SQL 命令,例如:
DROP TABLE (SELECT table_name FROM tables_to_drop);
或:
WITH subquery1 AS (SELECT table_name FROM tables_to_drop) DROP TABLE * FROM subquery1;
这些都不起作用(语法错误)。请问有什么想法吗?
【问题讨论】:
-
你可以使用python脚本来做。没有直接的方法。
标签: sql impala apache-zeppelin