PG_TABLE_DEF - Amazon Redshift

O Amazon Redshift não permitirá mais a criação de funções definidas pelo usuário (UDFs) do Python a partir de 1.º de novembro de 2025. Se quiser usar UDFs do Python, você deve criá-las antes dessa data. As UDFs do Python existentes continuarão a funcionar normalmente. Para ter mais informações, consulte a publicação de blog .

PG_TABLE_DEF

Armazena informações sobre colunas de tabela.

PG_TABLE_DEF retorna somente informações sobre tabelas visíveis para o usuário. Se PG_TABLE_DEF não retornar os resultados esperados, verifique se o parâmetro search_path está definido corretamente para incluir os esquemas relevantes.

Você pode usar SVV_TABLE_INFO para visualizar mais informações abrangentes sobre uma tabela, inclusive distorção dos dados, distorção da distribuição da chave, tamanho da tabela e estatísticas.

Colunas da tabela

Nome da coluna Tipo de dados Descrição
schemaname nome Nome do esquema.
tablename nome O nome da tabela.
column nome Nome da coluna.
type text Datatype da coluna.
encoding character(32) Codificação da coluna.
distkey booliano Verdadeiro se essa coluna for a chave de distribuição da tabela.
sortkey integer Ordem da coluna na chave de classificação. Se a tabela usar uma chave de classificação composta, todas as colunas que fizerem parte da chave de classificação terão um valor positivo que indicará a posição da coluna na chave de classificação. Se a tabela usar uma chave de classificação intercalada, cada coluna que fizer parte da chave de classificação terá um valor alternadamente positivo ou negativo, onde o valor absoluto indica a posição da coluna na chave de classificação. Se 0, a coluna não fará parte de uma chave de classificação.
notnull boolean Verdadeiro se a coluna tiver uma restrição NOT NULL.

Exemplo

O exemplo a seguir mostra as colunas da chave de classificação composta da tabela LINEORDER_COMPOUND.

select "column", type, encoding, distkey, sortkey, "notnull" from pg_table_def where tablename = 'lineorder_compound' and sortkey <> 0; column | type | encoding | distkey | sortkey | notnull -------------+---------+----------+---------+---------+-------- lo_orderkey | integer | delta32k | false | 1 | true lo_custkey | integer | none | false | 2 | true lo_partkey | integer | none | true | 3 | true lo_suppkey | integer | delta32k | false | 4 | true lo_orderdate | integer | delta | false | 5 | true (5 rows)

O exemplo a seguir mostra as colunas da chave de classificação intercalada da tabela LINEORDER_INTERLEAVED.

select "column", type, encoding, distkey, sortkey, "notnull" from pg_table_def where tablename = 'lineorder_interleaved' and sortkey <> 0; column | type | encoding | distkey | sortkey | notnull -------------+---------+----------+---------+---------+-------- lo_orderkey | integer | delta32k | false | -1 | true lo_custkey | integer | none | false | 2 | true lo_partkey | integer | none | true | -3 | true lo_suppkey | integer | delta32k | false | 4 | true lo_orderdate | integer | delta | false | -5 | true (5 rows)

PG_TABLE_DEF retornará somente informações de tabelas nos esquemas incluídos no caminho de pesquisa. Para obter mais informações, consulte search_path.

Por exemplo, suponhamos que você crie um novo esquema e uma nova tabela e, em seguida, consulte PG_TABLE_DEF.

create schema demo; create table demo.demotable (one int); select * from pg_table_def where tablename = 'demotable'; schemaname|tablename|column| type | encoding | distkey | sortkey | notnull ----------+---------+------+------+----------+---------+---------+--------

A consulta não retorna linhas para a nova tabela. Examine a configuração de search_path.

show search_path; search_path --------------- $user, public (1 row)

Adicione o esquema demo ao caminho de pesquisa e execute a consulta novamente.

set search_path to '$user', 'public', 'demo'; select * from pg_table_def where tablename = 'demotable'; schemaname| tablename |column| type | encoding |distkey|sortkey| notnull ----------+-----------+------+---------+----------+-------+-------+-------- demo | demotable | one | integer | none | f | 0 | f (1 row)