我有一个列,我想要更改数据类型。我目前正在使用Redshift。我知道我可以使用alter table语句来更改数据类型,但这会改变列的顺序。
有没有办法在不改变列顺序的情况下更改数据类型?
答案 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
中还描述了其他限制