web-dev-qa-db-fra.com

La table Redshift n'apparaît pas dans les tables du schéma?

Sur Redshift, pourquoi ma table n'apparaît-elle pas dans la requête suivante? Il existe définitivement, comme le montre la prochaine requête que j'exécute. Je veux un moyen de lister toutes les tables pour un schéma:

mydb=# select distinct(tablename) from pg_table_def where schemaname = 'db';
 tablename 
-----------
(0 rows)

mydb=# \d db.some_table
                    Table "db.some_table"
     Column      |            Type             | Modifiers 
-----------------+-----------------------------+-----------
...correct info shows up here...
...but nothing showed up above?
12
Some Guy

PG_TABLE_DEF dans Redshift ne renvoie que des informations sur les tables visibles par l'utilisateur, en d'autres termes, il ne vous montrera que les tables qui sont dans le (s) schéma (s) qui sont définies dans la variable search_path. 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 le ou les schémas pertinents.

Essaye ça -

mydb=# set search_path="$user",db;

Exécutez ensuite votre requête -

mydb=# select tablename from pg_table_def where schemaname = 'db';
13
Kamlesh Gallani

PG_TABLE_DEF ne renverra que des informations pour les tables des schémas inclus dans le chemin de recherche. Lien

1
Bill SY