Redshift tablosu şema tablolarında görünmüyor mu?


12

Redshift'te, tablom neden aşağıdaki sorguda görünmüyor? Kesinlikle var, çalıştırdığım bir sonraki sorgu ile gösterildiği gibi. Bir şema için tüm tabloları listelemek için bir yol istiyorum:

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
Sorunuzla ilgisi yok, ancak farklı bir işlev değil. Karışıklığı önlemek için parantezleri kaldırmanızı öneririm. İkinci düşüncede, bir şemada aynı ada sahip iki tablo bulunamayacağından, farklı kendini de kaldırabilirsiniz.
Lennart

Sonucu nedir: select schemaname, tablename from pg_table_def?
Lennart

Şema adınızın "db" olduğundan emin misiniz, çünkü "veritabanı adı" gibi görünüyor mu ?.
Senthil

Yanıtlar:


13

Redshift'teki PG_TABLE_DEF yalnızca kullanıcı tarafından görülebilen tablolar hakkında bilgi döndürür, başka bir deyişle, yalnızca şemalarda yalnızca arama_yolu değişkeninde tanımlanan tabloları gösterir. PG_TABLE_DEF beklenen sonuçları döndürmezse, search_path parametresinin ilgili şemaları içerecek şekilde doğru ayarlandığını doğrulayın .

Bunu dene -

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

Ardından sorgunuzu çalıştırın -

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

'Bunu' yapmaktan daha fazla bilgi sağlamak için lütfen yanıtınızı düzenleyin.
RLF

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.