Tabela zmiany biegów nie jest wyświetlana w tabelach dla schematu?

12

Dlaczego w Redshift moja tabela nie pojawia się w następującym zapytaniu? Zdecydowanie istnieje, jak pokazuje następne zapytanie, które uruchamiam. Chcę sposób wyświetlić listę wszystkich tabel dla schematu:

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?
Jakiś facet
źródło
3
Nie ma związku z twoim pytaniem, ale odrębność nie jest funkcją. Sugeruję usunięcie nawiasów, aby uniknąć nieporozumień. Z drugiej strony równie dobrze możesz usunąć odrębne ja, ponieważ nie mogą istnieć dwie tabele o tej samej nazwie w jednym schemacie.
Lennart
Jaki jest wynik select schemaname, tablename from pg_table_def:?
Lennart
Czy jesteś pewien, że twoja nazwa schematu to „db”, ponieważ wygląda jak „nazwa bazy danych” ?.
Senthil

Odpowiedzi:

13

PG_TABLE_DEF w Redshift zwraca tylko informacje o tabelach, które są widoczne dla użytkownika, innymi słowy, pokaże tylko te tabele, które znajdują się w schematach, które są zdefiniowane w zmiennej path_path. Jeśli PG_TABLE_DEF nie zwraca oczekiwanych wyników, sprawdź, czy parametr ścieżka_wyszukiwania jest ustawiony poprawnie, aby uwzględnić odpowiednie schematy.

Spróbuj tego -

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

Następnie uruchom zapytanie -

mydb=# select tablename from pg_table_def where schemaname = 'db';
Kamlesh Gallani
źródło
Edytuj swoją odpowiedź, aby podać więcej informacji niż „zrób to”.
RLF,
1

PG_TABLE_DEF zwróci informacje tylko dla tabel w schematach zawartych w ścieżce wyszukiwania. Połączyć

Bill SY
źródło