可以一次在Impala中删除多个视图

时间:2019-07-05 08:12:13

标签: sql impala

我有一个包含三个视图的数据库。我正在尝试执行命令以一次删除所有三个。

Impala Guide显示可以使用一次删除一个视图

DROP VIEW IF EXISTS mydb.view_name

但是,它并不建议使用一种方法删除多个视图,同时《指南》中的this page并不表示这是一种限制。

如果我使用的是SQL Server(和其他版本的SQL),则可以按照this tutorial中显示的方法,用,分隔视图。

DROP VIEW IF EXISTS 
                   mydb.view_v1,
                   mydb.view_v2,
                   mydb.view_v3;

我希望这会删除数据库中的三个视图。

但是,当我在Impala中尝试此操作时,出现以下错误:

AnalysisException: Syntax error in line 2:undefined: ...exists mydb.view_v1, mydb.view_v2, mydb... ^ Encountered: COMMA Expected: ADD, ALTER, AS, CACHED, CHANGE, COMMENT, DROP, FROM, LIKE, LOCATION, PARTITION, PARTITIONED, PRIMARY, PURGE, RECOVER, RENAME, REPLACE, ROW, SELECT, SET, SORT, STORED, STRAIGHT_JOIN, TBLPROPERTIES, TO, UNCACHED, VALUES, WITH CAUSED BY: Exception: Syntax error

所有视图仍然保留。

1 个答案:

答案 0 :(得分:1)

很明显,该错误表明,以Impala术语来说,您的语句在语法上不正确(并且不受支持)。

我能想到的模拟与您所需内容类似的唯一方法是将所有视图放入单独的数据库中,然后运行DROP DATABASE ... CASCADE。我希望此操作具有原子性,即失败作为单个单元成功。

相关问题