【问题标题】:Update hive column name更新配置单元列名称
【发布时间】:2018-02-22 07:10:03
【问题描述】:

我有一个关于 Hive DB 的小问题。

如果我有一个表,可以说我是通过“CREATE EXTERNAL TABLE TEMP”创建的,具有特定的位置 - 我想更改列名(只有名称 - 而不是类型)。如果我使用不同的列名运行相同的 CREATE 命令 - 会发生什么?表列会自行更新吗?我会收到“表已存在”的错误?

我在问这个问题,因为我将列名存储在数据库中,并且我想进行自动处理 - 所以我不想编写特定的“更新列名”命令...

谢谢!

【问题讨论】:

  • 测试它会比写这篇文章花费更少的时间
  • 试试看会发生什么。不过,如果您没有收到“表已存在”错误,我会感到惊讶。
  • 在你必须删除表之前(如果它是外部的,你不会丢失数据)然后你可以用新名称重新创建它。

标签: mysql hive create-table presto


【解决方案1】:

可以使用 ALTER TABLE table_name CHANGE 来完成,因为它需要元更改。

例如

ALTER TABLE table_name CHANGE [COLUMN] col_old_name col_new_name column_type [COMMENT col_comment] [FIRST|AFTER column_name]

https://www.cloudera.com/documentation/enterprise/5-8-x/topics/impala_alter_table.html

【讨论】:

    【解决方案2】:

    不,表格列不会更新。相反,您会收到一个错误,因为表已经存在。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-18
      • 1970-01-01
      • 2022-09-23
      • 1970-01-01
      • 2020-07-31
      • 1970-01-01
      相关资源
      最近更新 更多