配置单元在varchar中改变表列大小

5n0oy7gb  于 2021-06-25  发布在  Hive
关注(0)|答案(3)|浏览(287)

我是一个新来的Hive,几个月前我已经在下面创建了一个表

create table TableName 
(
    EntityRelationship varchar(20), 
    EntityID varchar(50), 
    EntityName varchar(50), 

    CLUSTERED BY (EntityID) INTO 60 BUCKETS STORED AS ORC
)

然而,现在我意识到 EntityName Varchar(50) 这还不够 Varchar(250) . 我找到了alter表代码,但它们都没有改变列的大小,而是改变了类型和名称。
另外,我不能删除表,因为它已经有很多数据,这意味着我必须重新加载过去几个月每天。
我希望结束表描述如下

create table TableName 
( 
    EntityRelationship varchar(20), 
    EntityID varchar(50), 
    EntityName varchar(250), 
    CLUSTERED BY (EntityID) INTO 60 BUCKETS STORED AS ORC
)

有没有其他的我可以改变这个现有的表前进 EntityName varchar(250) 不掉table?谢谢你的时间。谢谢

wbgh16ku

wbgh16ku1#

@yjg如果alter语句不影响列的大小,那么除了构建所需格式的新表外,您可能没有其他机会,只需插入newtable select*from oldtable。然后将oldtable重命名为backuptable,将newtable重命名为oldtable。当更改原始表架构不起作用时,有时需要通过临时表移动数据的这种方法。

idfiyjo8

idfiyjo82#

ALTER TABLE TableName CHANGE COLUMN EntityName EntityName  varchar(250);

阅读更多详细信息:更改列名/类型/位置/注解

lokaqttq

lokaqttq3#

alter table table\u name alter column column\u name type varchar(250);
希望这有帮助

相关问题