powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / запросы ругаются на схему
13 сообщений из 13, страница 1 из 1
запросы ругаются на схему
    #40077261
Леонид33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте,

поставил PostgreSQL 13.3, сделал новую схему - TST,
добавил путь:

ALTER DATABASE "postgres" SET search_path = TST, public; - ошибок не выдало,

сделал в TST таблицу, а при селекте - ругается ,что нет такой схемы.

пытался дать права пользователю:
GRANT ALL PRIVILEGES ON SCHEMA TST to postgres;

тоже ругается, не видит схему.

этот запрос схему видит:
SELECT schema_name FROM information_schema.schemata WHERE schema_name = 'TST';

в PGAdmin схема видна, но как только какой запрос - все ,ругается - что может быть?
...
Рейтинг: 0 / 0
запросы ругаются на схему
    #40077267
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонид33
этот запрос схему видит:
SELECT schema_name FROM information_schema.schemata WHERE schema_name = 'TST';

Покажите результат этого запроса...

И вот такого:
Код: sql
1.
2.
3.
select name, setting 
  from pg_settings
 where name = 'search_path';




А еще лучше - точную команду создания схемы приведите...
Сдается мне, где-то вы имя схемы в двойных кавычках указать умудрились
...
Рейтинг: 0 / 0
запросы ругаются на схему
    #40077271
Леонид33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на перый запрос выдает:
TST

на второй:
name setting
search_path "$user", public


а создавал не через скритп, а правой кнопкой мыша на схемы -> создать в pgadmin.
...
Рейтинг: 0 / 0
запросы ругаются на схему
    #40077272
Кесарь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонид33,

где-нить в недрах движка понимается, что TST это тестовая схема, и работа по ней прекращается :)

Попробуйте дать другое название и сравните поведение.
...
Рейтинг: 0 / 0
запросы ругаются на схему
    #40077275
Кесарь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или ошибка в самом клиенте. Рецепт тот же:

создать ещё две схемы. Одну через мастер клиента, другую руками скриптом. И сравнить, как оно. Имена выбирать отличные от ТСТ.
...
Рейтинг: 0 / 0
запросы ругаются на схему
    #40077276
Леонид33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сделал и через ИДЕ и скриптами,
все одно:

ERROR: ОШИБКА: отношение "mmus.kolob" не существует
LINE 1: select * from mmus.kolob

на это не ругается:

ALTER DATABASE "postgres" SET search_path = mmus, public;

тут тормознул: создал таблицу без указания схемы,в раблик попадла.
просто с PostgreSQL впервые общаюсь...

все, если делать скриптами, то работает, а из среды - почему-то нет...
странно...

pgadmin4 версия 5.2 - это не глючная? ставилась вместе с PostgreSQL 13.3.
...
Рейтинг: 0 / 0
запросы ругаются на схему
    #40077278
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонид33
сделал и через ИДЕ и скриптами,
все одно:

ERROR: ОШИБКА: отношение "mmus.kolob" не существует
LINE 1: select * from mmus.kolob

на это не ругается:

ALTER DATABASE "postgres" SET search_path = mmus, public;


а что показывает \dn+ в вашей базе?

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
запросы ругаются на схему
    #40077280
Леонид33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
повторюсь:

тут тормознул: создал таблицу без указания схемы,в раблик попадла.
просто с PostgreSQL впервые общаюсь...

все, если делать скриптами, то работает, а из среды - почему-то нет...
странно...

pgadmin4 версия 5.2 - это не глючная? ставилась вместе с PostgreSQL 13.3.

и просветите: \dn+ - это где делать?
а то я ток первый день с PostgreSQL...
...
Рейтинг: 0 / 0
запросы ругаются на схему
    #40077281
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонид33
повторюсь:

тут тормознул: создал таблицу без указания схемы,в раблик попадла.
просто с PostgreSQL впервые общаюсь...

все, если делать скриптами, то работает, а из среды - почему-то нет...
странно...

pgadmin4 версия 5.2 - это не глючная? ставилась вместе с PostgreSQL 13.3.

и просветите: \dn+ - это где делать?
а то я ток первый день с PostgreSQL...


Всё и всегда смотриться в коммандной строке psql. ))
+ Если у вас схема действительно большими буквами указана то надо использовать синтакси from "TST".somename.


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
запросы ругаются на схему
    #40077282
Леонид33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я и писал большие буквы, если - делал с большими.

в итоге получаетсятакая картина:
если я делаю схемы и таблицы из среды pgadmin, то запросы без схемы в кавычках не работают:

select * from "mySch".mymob - работает
select * from mySch.mymob - выпадает в ошибку

если все делаю скриптами, то работает и без кавычек:

select * from "mmus".kolob - работает
select * from mmus.kolob - тоже работает
...
Рейтинг: 0 / 0
запросы ругаются на схему
    #40077293
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонид33
я и писал большие буквы, если - делал с большими.

в итоге получаетсятакая картина:
если я делаю схемы и таблицы из среды pgadmin, то запросы без схемы в кавычках не работают:

select * from "mySch".mymob - работает
select * from mySch.mymob - выпадает в ошибку

если все делаю скриптами, то работает и без кавычек:

select * from "mmus".kolob - работает
select * from mmus.kolob - тоже работает


Не вы первый с этим сталкиваетесь.
Вот что в реальности происходит:

Из https://www.postgresql.org/docs/13/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS
Quoting an identifier also makes it case-sensitive, whereas unquoted names are always folded to lower case. For example, the identifiers FOO, foo, and "foo" are considered the same by PostgreSQL, but "Foo" and "FOO" are different from these three and each other.

Соответственно когда вы скриптом создаете схему вы скорее всего ее имя без двойных кавычек указываете.
Поэтому в реальности вы создаете не mySch а mysch
А когда делаете через pgadmin он создает схему именно в том case что вы написали.

Вот потому и разница в поведении.

Я бы настоятельно рекомендовал все в lower case всегда делать во избежание подобной путаницы.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
запросы ругаются на схему
    #40077319
Леонид33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim Boguk,

Спасибо, просветили!

ток зачем такой гемор? не лучше ли - написал большими - значит большими... маленькими - значит маленькими...
...
Рейтинг: 0 / 0
запросы ругаются на схему
    #40077333
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонид33
Maxim Boguk,

Спасибо, просветили!

ток зачем такой гемор? не лучше ли - написал большими - значит большими... маленькими - значит маленькими...


Таков путь... точнее требования международного SQL стандарта которому лет и лет (хорошо если не 30 как минимум в этой части).
Мне case insensetive в sql как раз нравяться потому что я могу писать как удобно-красивеее-поятнее мне лично а внутри всёравно low case будет.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / запросы ругаются на схему
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]