#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