首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >snowflake -将数据类型从VARCHAR(16777216)修改为NUMBER

问snowflake -将数据类型从VARCHAR(16777216)修改为NUMBER
EN

Stack Overflow用户
提问于 2020-06-22 16:57:21
回答 1查看 1.8K关注 0票数 0

我需要将类型VARCHAR(16777216)修改为NUMBER in snowflake。

ALTER TABLE TABLE_NAME ALTER SQL set data type NUMBER;返回: COLUMN_NAME编译错误:无法将列COLUMN_NAME从类型VARCHAR(16777216)更改为NUMBER(38,0)

ALTER TABLE varchar ALTER varchar type VARCHAR500;返回: TABLE_NAME编译错误:无法将列COLUMN_NAME从类型VARCHAR(16777216)更改为VARCHAR500,因为不支持减少varchar的字节长度。

(我知道我可以向表中添加一个新列,然后更新它并删除旧列,但我希望该列保持在其序号位置,而不是移动到最后一列,

此外,我知道我可以创建具有新数据类型的新表,然后向其中插入数据,但是有很多数据,并且需要对多个表进行此更改。因此,我更倾向于避免这种解决方案)

有什么简单的方法吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2020-06-22 17:43:30

我不确定您是否知道这一点,但在Snowflake中,创建新表和复制数据以及更改数据类型之间没有太大区别。Snowflake用来存储数据的DB文件无法更新,因此任何数据更新都会导致创建一个包含数据的新文件(如果该文件中有超过1条记录,这意味着数据将被分割到2个文件中,从而导致性能下降)

由于这个原因,没有一种真正“简单”的方法,因为如果您试图更改数据类型,您能想到的任何东西都会导致整个表彻底翻新。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62510774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档