如何复制Redshift表但是向列添加排序键?

Max*_*iel 1 sql postgresql amazon-redshift

我目前正在开发一个使用带有51列的Redshift表的项目.但是,time如果我们不添加它,那么制作表格的人忘记在我们的列中添加sortkey,这会损害我们用例的性能.

如何使用我们的time列作为排序键来创建表的版本?我知道如果它是现有表的成员,你不能使列成为排序键,但我希望有一种方法可以做到这一点,而不涉及手写出CREATE TABLE语法; 例如,像这样的东西会很好:

timecube=# CREATE TABLE foo (like bar) sortkey(time);
ERROR:  CREATE TABLE LIKE is not supported with DISTSTYLE, DISTKEY(), or SORTKEY() clauses
Run Code Online (Sandbox Code Playgroud)

但你可以看到它不受支持.还有另外一种方法吗?由于我们仍在开发中,因此我们不需要任何现有数据.

使用传统工具pgdump不能很好地工作,因为它们不包含任何类似编码的Redshift附加功能.

Joe*_*ris 10

根据文档CREATE TABLE AS,Redshift支持将DIST和SORT键指定为语句的一部分.

CREATE TABLE AS