Таблиця перемикання не відображається в таблицях для схеми?


12

Чому на Redshift чому моя таблиця не відображається в наступному запиті? Він безумовно існує, як показано в наступному запиті, який я запускаю. Я хочу спосіб перерахувати всі таблиці для схеми:

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
Не пов'язане з вашим запитанням, але чітке не є функцією. Я пропоную вам видалити дужки, щоб уникнути плутанини. По-друге, ви можете також видалити чітке самостійно, оскільки в одній схемі не може бути двох таблиць з однаковою назвою.
Леннарт

Що таке результат: select schemaname, tablename from pg_table_def?
Леннарт

Ви впевнені, що ваше ім'я схеми - "db", оскільки воно схоже на "ім'я бази даних" ?.
Сентіл

Відповіді:


13

PG_TABLE_DEF у програмі Redshift повертає лише інформацію про видимі користувачеві таблиці, іншими словами, він покаже лише таблиці, які знаходяться у схемах (их), визначених змінною search_path. Якщо PG_TABLE_DEF не повертає очікуваних результатів, перевірте, чи параметр search_path встановлений правильно, щоб включати відповідні схеми (схеми).

Спробуйте це -

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

Потім запустіть свій запит -

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

Відредагуйте свою відповідь, щоб надати більше інформації, ніж "зробити це".
RLF

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.