有没有办法在不更改列顺序的情况下更改列的数据类型?

时间:2018-01-22 22:47:14

标签: amazon-redshift

我有一个列,我想要更改数据类型。我目前正在使用Redshift。我知道我可以使用alter table语句来更改数据类型,但这会改变列的顺序。

有没有办法在不改变列顺序的情况下更改数据类型?

2 个答案:

答案 0 :(得分:2)

我建议使用您想要的架构创建一个新表,并使用insert into new_table (select * from old_table)语句从旧表中复制它(此处您也可以对新数据类型执行任何转换),之后您可以删除旧表并重命名新表:

drop table old_table;
alter table new_table rename to old_table;

答案 1 :(得分:0)

使用ALTER TABLE table_name ALTER COLUMN column_name TYPE new_data_type不会更改表中列的顺序。

请注意,此子句只能更改定义为VARCHAR数据类型的列的大小。 AWS documentation of ALTER TABLE

中还描述了其他限制