使用 Databricks 删除数据库中的多个表

use*_*170 5 scala databricks databricks-sql

我正在尝试使用以下命令删除 databrick scala 中的多个表

select 'DROP TABLE ' + tableName from ABC where tableName LIKE 'in%'
Run Code Online (Sandbox Code Playgroud)

错误结果说

SQL 语句错误: AnalysisException:未找到表或视图:ABC

然而 ABC 数据库存在

谢谢

Ale*_*Ott 5

不,它不会这样工作...您需要将SHOW TABLES IN ... LIKE ...与显式删除结合使用。像这样(Python):

db_name = "ABC"
pattern = "in*"
tables = spark.sql(f"SHOW TABLES IN {db_name} LIKE '{pattern}'")
for row in tables.collect():
  spark.sql(f"DROP TABLE {db_name}.{row[1]}")
Run Code Online (Sandbox Code Playgroud)