powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / [хочу странного] в запросе найти название таблицы на которую inhetits с текущей
4 сообщений из 4, страница 1 из 1
[хочу странного] в запросе найти название таблицы на которую inhetits с текущей
    #39332877
Фотография Legushka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как проще всего найти в запросе название таблицы на которую ссылается (inherits) текущая таблица (известно полное наименование текущей)
...
Рейтинг: 0 / 0
[хочу странного] в запросе найти название таблицы на которую inhetits с текущей
    #39332968
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Legushkaкак проще всего найти в запросе название таблицы на которую ссылается (inherits) текущая таблица (известно полное наименование текущей)
так, как сформулировано -- ещё не странного. странного -- это воспользоваться этим названием, как именем объекта , к которому запрос (тут в "объектно модели пж" куча недоделок, которые могли бы много чего вкусного обещать). /* вот запрос к объекту по его оиду, вместо имени -- это то странное, чего я хочу, например. маниловски эдак облизываюсь лет 10 наверное как */

далее -- наследование в пж вообще-то множественное. какого из потенциального мн--ва предков будем искать ?

а так -- всё валяется в pg_inherits, а у вас в руках -- tableoid:

https://www.postgresql.org/docs/current/static/catalog-pg-inherits.html
https://postgrespro.ru/docs/postgrespro/9.5/catalog-pg-inherits
...
Рейтинг: 0 / 0
[хочу странного] в запросе найти название таблицы на которую inhetits с текущей
    #39332990
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еть нюансы -- в табле может не быть записей.
тогда через имя.
Код: sql
1.
2.
		SELECT t.*,inhparent::regclass FROM  t_2 t join pg_inherits p ON t.tableoid = p.inhrelid;
		SELECT count(t.*),(SELECT inhparent::regclass FROM pg_inherits p WHERE p.inhrelid ='t_2'::regclass)    FROM  t_2 t;



можно правда через такую неочевидную штуку:

Код: sql
1.
SELECT count(t.*),max(t.tableoid),(SELECT inhparent::regclass FROM pg_inherits p WHERE p.inhrelid =max(t.tableoid))    FROM  t_2 t;


странно что не null
что будет, если там будут ещё дети у самой таблы -- надо проверять.
...
Рейтинг: 0 / 0
[хочу странного] в запросе найти название таблицы на которую inhetits с текущей
    #39332992
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwq,

с последним наврал. таки null.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / [хочу странного] в запросе найти название таблицы на которую inhetits с текущей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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