Вновь созданные схема и таблицы не перечислены в таблице «Information_schema.columns» в PostgreSQL

#sql #postgresql #system-tables

#sql #postgresql #system-таблицы

Вопрос:

Мы недавно создали несколько таблиц и схему (с таблицами под ней). Раньше мы извлекали информацию о таблице столбцах, запрашивая таблицу Information_schema.columns. Но вновь созданные таблицы и схема не отображаются при запросе таблицы Information_schema.columns. Есть идеи, почему?

Также я провел некоторое исследование и нашел таблицу — pg_tables, в которой перечислены вновь созданные таблицы. Но не удалось получить информацию о столбце здесь. Можно ли объединить ее с любой другой дочерней таблицей для получения информации о столбце?

Спасибо!

Комментарии:

1. Чтобы просмотреть данные в in information_schema.* , вам необходимо запросить их как пользователя с разрешениями для этих объектов. Другими словами, если таблицы созданы от имени одного пользователя, и вы запрашиваете Information_schema.columns их от имени другого пользователя, у которого нет разрешений для таблиц (и столбцов), вы ничего не увидите. Другая возможность заключается в том, что создание схемы и таблицы было выполнено в транзакции, которая не была зафиксирована, и поэтому новые объекты не сохранялись после сеанса.

2. @a_horse_with_no_name Нет .. таблицы information_schema.tables также не перечислены..

3. @AdrianKlaver Таблица была создана администратором базы данных в соответствии с нашим запросом .. Мы смогли увидеть таблицу и ее свойства в Pgadmin, но она не была извлечена при запросе information_schema.* таблиц.. Мы также не можем запросить таблицу, говорится permission denied for table в нем.. Итак, должны ли мы запрашивать какой-либо конкретный доступ к администратору базы данных?

4. @a_horse_with_no_name ohh..so связано ли это с какой-то проблемой доступа к использованию идентификатора разработчика? должны ли мы запрашивать определенный доступ у администратора базы данных?

5. Если у вас нет разрешений для таблицы, вы не сможете увидеть ее информацию в information_schema. Варианты: 1) получить разрешения для таблицы. 2) Вместо этого используйте системные каталоги (что делает pgAdmin). Для вашего случая pg_attribute