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 _ renvoie DEF uniquement les informations relatives aux tables visibles par l'utilisateur. Si PG_ TABLE _ DEF ne renvoie pas les résultats attendus, vérifiez que le search_path paramètre est correctement défini pour inclure les schémas pertinents.
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 | Vrai si la colonne comporte une NOT NULL contrainte. |
Exemple
L'exemple suivant montre les colonnes clés de tri composées pour la COMPOUND table LINEORDER _.
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 montre les colonnes clés de tri entrelacées pour 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 renverra uniquement les informations pour les tables des schémas inclus dans le chemin de recherche. Pour de plus amples informations, veuillez consulter search_path.
Supposons, par exemple, que vous créiez un nouveau schéma et une nouvelle 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)