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?

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';

Edytuj swoją odpowiedź, aby podać więcej informacji niż „zrób to”.
RLF,

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.