PG_TABLE_DEF - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

PG_TABLE_DEF

Stocke les informations sur les colonnes de la table.

PG_TABLE_DEF renvoie uniquement les informations sur les tables visibles de l'utilisateur. Si PG_TABLE_DEF ne renvoie pas les résultats attendus, vérifiez que le paramètre search_path est correctement défini pour inclure les schémas correspondants.

Vous pouvez utiliser SVV_TABLE_INFO pour afficher des informations plus exhaustives sur une table, notamment l'asymétrie de la distribution des données, l'asymétrie de la distribution de clés, la taille de la table et les statistiques.

Colonnes de la table

Nom de la colonne Type de données Description
schemaname name Nom du schéma.
tablename name Nom de la table.
column name Nom de la colonne.
type text Type de données de la colonne.
encoding character(32) Encodage de la colonne.
distkey boolean True si cette colonne est la clé de distribution de la table.
sortkey entier Ordre de la colonne dans la clé de tri. Si la table utilise une clé de tri composée et que toutes les colonnes qui font partie de la clé de tri ont une valeur positive qui indique la position de la colonne dans la clé de tri. Si la table utilise une clé de tri entrelacée, toutes les colonnes qui font partie de la clé de tri ont une valeur qui est tour à tour positive ou négative, où la valeur absolue indique la position de la colonne dans la clé de tri. Si 0, la colonne de fait pas partie d'une clé de tri.
notnull boolean True si la colonne comporte une contrainte NOT NULL.

Exemple

L'exemple suivant illustre les colonnes de clés de tri composées de la table 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)

L'exemple suivant illustre les colonnes de clés de tri entrelacées de la table 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 renvoie uniquement les informations pour les tables dans des schémas inclus dans le chemin de recherche. Pour de plus amples informations, veuillez consulter search_path.

Par exemple, supposons que vous créiez un schéma et une table, puis que vous interrogiez 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 ----------+---------+------+------+----------+---------+---------+--------

La requête ne renvoie aucune ligne pour la nouvelle table. Examinez le paramètre de search_path.

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

Ajoutez le schéma demo au chemin de recherche et exécutez la requête à nouveau.

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)