首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Amazon Redshift中更改列数据类型

在Amazon Redshift中更改列数据类型
EN

Stack Overflow用户
提问于 2013-06-14 13:51:36
回答 7查看 109.8K关注 0票数 91

如何更改Amazon Redshift数据库中的列数据类型?

我无法更改Redshift中的列数据类型;有什么方法可以修改Amazon Redshift中的数据类型吗?

EN

回答 7

Stack Overflow用户

发布于 2013-06-14 15:22:28

正如ALTER TABLE documentation中所述,您可以使用以下命令更改VARCHAR列的长度

代码语言:javascript
运行
复制
ALTER TABLE table_name
{
    ALTER COLUMN column_name TYPE new_data_type 
}

对于其他列类型,我能想到的就是添加一个具有正确数据类型的新列,然后将旧列中的所有数据插入到新列中,最后删除旧列。

使用与此类似的代码:

代码语言:javascript
运行
复制
ALTER TABLE t1 ADD COLUMN new_column ___correct_column_type___;
UPDATE t1 SET new_column = column;
ALTER TABLE t1 DROP COLUMN column;
ALTER TABLE t1 RENAME COLUMN new_column TO column;

将会有模式更改--新添加的列将是表中的最后一列(这可能是COPY语句的问题,请记住这一点--您可以使用COPY定义列顺序)

票数 143
EN

Stack Overflow用户

发布于 2014-12-23 01:24:40

要避免Tomasz提到的模式更改,请执行以下操作:

代码语言:javascript
运行
复制
BEGIN TRANSACTION;

ALTER TABLE <TABLE_NAME> RENAME TO <TABLE_NAME>_OLD;
CREATE TABLE <TABLE_NAME> ( <NEW_COLUMN_DEFINITION> );
INSERT INTO <TABLE_NAME> (<NEW_COLUMN_DEFINITION>)
SELECT <COLUMNS>
FROM <TABLE_NAME>_OLD;
DROP TABLE <TABLE_NAME>_OLD;

END TRANSACTION;
票数 44
EN

Stack Overflow用户

发布于 2019-07-19 00:04:20

(最近更新)可以在Redshift中更改varchar列的类型。

代码语言:javascript
运行
复制
ALTER COLUMN column_name TYPE new_data_type

示例:

代码语言:javascript
运行
复制
CREATE TABLE t1 (c1 varchar(100))

ALTER TABLE t1 ALTER COLUMN c1 TYPE varchar(200)

这是文档link

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

https://stackoverflow.com/questions/17101918

复制
相关文章

相似问题

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