可以在 Impala 中一次删除多个视图
Can one drop multiple views at once in Impala
我有一个包含三个视图的数据库。我正在尝试执行一个命令来同时删除所有三个。
Impala Guide 表明可以使用
一次删除一个视图
DROP VIEW IF EXISTS mydb.view_name
但它没有建议删除多个视图的方法,同时指南中的 this page 也没有建议这将是一个限制。
如果我使用 SQL 服务器(以及 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
并且所有视图都保留。
显然,该错误表明在 Impala 术语中,您的语句在句法上不正确(并且不受支持)。
我能想到的模拟类似于您需要的东西的唯一方法是将所有视图放入一个单独的数据库中,然后 运行 一个 DROP DATABASE ... CASCADE
。我希望此操作以原子方式运行,即作为一个单元成功或失败。
我有一个包含三个视图的数据库。我正在尝试执行一个命令来同时删除所有三个。
Impala Guide 表明可以使用
一次删除一个视图DROP VIEW IF EXISTS mydb.view_name
但它没有建议删除多个视图的方法,同时指南中的 this page 也没有建议这将是一个限制。
如果我使用 SQL 服务器(以及 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
并且所有视图都保留。
显然,该错误表明在 Impala 术语中,您的语句在句法上不正确(并且不受支持)。
我能想到的模拟类似于您需要的东西的唯一方法是将所有视图放入一个单独的数据库中,然后 运行 一个 DROP DATABASE ... CASCADE
。我希望此操作以原子方式运行,即作为一个单元成功或失败。