如何在 Athena 中执行模式(数据库)重命名?

Posted

技术标签:

【中文标题】如何在 Athena 中执行模式(数据库)重命名?【英文标题】:How to execute schema(database) rename in Athena? 【发布时间】:2018-12-02 00:11:36 【问题描述】:

我正在尝试使用 sqlworkbench 对 Athena 执行 sql 语句。我已经执行了几个查询,如果这是第一个问题,我知道我有联系。在 Athena 中重命名数据库或通过 jdbc 重命名 Athena 的解决方案是什么?

alter schema geoosm rename to geo_osm

执行 SQL 命令时出错:alter schema geoosm 重命名为 geo_osm

[Simba]AthenaJDBC AWS 抛出错误 雅典娜客户端。第 1:24 行:不匹配的输入 'rename' 期望 'SET' [执行 ID 不可用] [SQL 状态=HY000,DB 错误代码=100071] 1 语句失败。

执行时间:0.27s

我的 SQL 语法来自 Presto documentation 的 Athena,据我了解,这是 Athena 使用的语法。

8.1。 ALTER SCHEMA 简介

ALTER SCHEMA 名称重命名为 new_name

【问题讨论】:

【参考方案1】:

抱歉,无法在 AWS Athena 中重命名数据库。幸运的是,表数据和表定义在 Athena 中是两个完全不同的东西。

您可以创建一个具有正确名称的新数据库,为您的表生成所有 DDL 并使用新数据库执行它们。

新数据库中的“新”表仍将指向同一位置,因此无需担心。

【讨论】:

只是对@Roberto 答案的一个有用补充——您可以使用ALTER TABLE SET LOCATION 更改表的位置,还可以使用@987654322 创建与其他表具有相同架构的 empty 表@

以上是关于如何在 Athena 中执行模式(数据库)重命名?的主要内容,如果未能解决你的问题,请参考以下文章

如何让 MSCK REPAIR TABLE 在 AWS Athena 中自动执行

在 Athena 中重命名列

如何在 MySQL 中重命名模式

如何在 WinForms 中禁用 TreeView 的节点重命名?

redis键重命名

如何通过 pydantic 模式重命名来自数据库的响应 - FastAPI