我需要获取所有列,这是Redshift中sortkey的一部分。
我尝试使用“select * from svv_table_info”获取信息,但它只有一列的信息。你能告诉我吗,我如何获得表格中Sortkey一部分的所有列。
谢谢, Sanjeev
答案 0 :(得分:2)
Sanjeev,
一个名为pg_table_def的表包含有关列的信息。
在下面的示例中,我创建了一个包含四列的简单表,并使用其中两列作为我的排序键。
正如您在查询结果中看到的那样,如果列是排序键的一部分,则“排序键”字段会显示0以外的数字。
dev=# drop table tb1;
DROP TABLE
dev=# create table tb1 (col1 integer, col2 integer, col3 integer, col4 integer) distkey(col1) sortkey(col2, col4);
CREATE TABLE
dev=# select * from pg_table_def where tablename = 'tb1';
schemaname | tablename | column | type | encoding | distkey | sortkey | notnull
------------+-----------+--------+---------+----------+---------+---------+---------
public | tb1 | col1 | integer | none | t | 0 | f
public | tb1 | col2 | integer | none | f | 1 | f
public | tb1 | col3 | integer | none | f | 0 | f
public | tb1 | col4 | integer | none | f | 2 | f
(4 rows)
答案 1 :(得分:0)
怎么样:
select "column", type, encoding, distkey, sortkey, "notnull"
from pg_table_def
where tablename = 'YOURTABLE'
and sortkey <> 0;
答案 2 :(得分:0)
感谢大家的帮助。我已经尝试了#34; pg_table_def&#34;表获取sortkey和distkey信息,但我只看到了pg_catalog和Public模式,我只是通过亚马逊开发人员指南,发现我们需要使用以下命令将模式添加到搜索路径: - show search_path; 将search_path设置为&#39; $ user&#39;,&#39; public&#39;,&#39; NewSchema&#39;;
添加&#34; NewSchema&#34;在搜索路径中,我可以在pg_table_def
中看到此模式的sortkey和distkey信息谢谢, Sanjeev