我是一个新来的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?谢谢你的时间。谢谢
3条答案
按热度按时间wbgh16ku1#
@yjg如果alter语句不影响列的大小,那么除了构建所需格式的新表外,您可能没有其他机会,只需插入newtable select*from oldtable。然后将oldtable重命名为backuptable,将newtable重命名为oldtable。当更改原始表架构不起作用时,有时需要通过临时表移动数据的这种方法。
idfiyjo82#
阅读更多详细信息:更改列名/类型/位置/注解
lokaqttq3#
alter table table\u name alter column column\u name type varchar(250);
希望这有帮助