Posgresql создать таблицу использовать information_schema - PullRequest
0 голосов
/ 06 июня 2018

Я столкнулся с этой проблемой, я создал базу данных с несколькими схемами, отличными от public.Когда я соединяюсь с ролью пользователя postgres (используя pgAdmin, если я выполняю инструкцию create table, таблица не создается, но если я просматриваю information_schema.tables, эта таблица отображается как table_schema = information_schema, даже если в операторе create я квалифицирую таблицу с помощьюобщедоступная схема. После этого, если я создаю другую таблицу, которая ссылается на первую или просто выбирает из этой таблицы, postgres жалуется, что отношение не исключается. Затем я должен удалить таблицу, чтобы продолжить в любом случае. Если я соединяюсь с другой ролью пользователя, с установленным свойством superuser, таблица создается в общедоступной схеме. Есть ли какое-либо свойство базы данных, которое мне нужно установить, или что-то еще, что мне нужно сделать, чтобы избежать вышеуказанной проблемы?

Ответы [ 2 ]

0 голосов
/ 14 июня 2018

Пожалуйста, попробуйте создать таблицы с указанием имени схемы, например (создать таблицу schemaname.tablename (...)), возможно, это решит вашу проблему.

0 голосов
/ 07 июня 2018

Может быть, вы наберете

set search_path = information_schema;

, чтобы сделать несколько запросов в information_schema.Но когда вы создаете таблицу, она была создана в information_schema.Это произошло потому, что первое имя схемы в set search_path является значением по умолчанию для создания объектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...