我有一个具有三个 View 的数据库。我正在尝试执行一个命令来同时删除所有三个。
Impala Guide表明可以使用一次删除一个 View
如果 mydb.view_name 存在则删除 View
但它并没有建议一种同时删除多个 View 的方法this page指南中并未暗示这将是一个限制。
如果我使用 SQL Server(以及其他版本的 SQL),我可以按照 this tutorial 中所示的方法进行操作。 ,用 ,
分隔 View 。
DROP VIEW IF EXISTS
mydb.view_v1,
mydb.view_v2,
mydb.view_v3;
我希望这会从数据库中删除三个 View 。
但是,当我在 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
并且所有 View 都保留。
最佳答案
显然,该错误表明,在 Impala 术语中,您的语句在语法上不正确(并且不受支持)。
我能想到的模拟与您需要的类似的东西的唯一方法是将所有 View 放入一个单独的数据库中,然后运行 DROP DATABASE ... CASCADE
。我希望此操作以原子方式运行,即作为一个单元要么成功,要么失败。
关于sql - 在 Impala 中可以一次删除多个 View 吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56899106/