72 похожих чатов

Подскажите, каким образом можно сделать запросы к нескольким таблицам, имена

которых хранятся в другой таблице? эдакий динамический FROM
смог найти EXECUTE format('SELECT blah FROM %s', SELECT table_name FROM ...), но more than one row returned by a subquery used as an expression

16 ответов

4 просмотра

Никак, это делать невозможно и даже вредно. Лучше перепроектируй твою БД: всё надо свалить в одну таблицу.

Саша Воронов
но я уже сделал...

Переделывай, пока коллеги не убили...

Ilya Zviagin
Никак, это делать невозможно и даже вредно. Лучше ...

А как тогда сделать, например следующее - в таблице хранятся имена некоторого количества таблиц, которые считаются "важными". И все содержимое этих "важных" таблиц по планировщику выгружается в файлы.

Alexander Morozov
А как тогда сделать, например следующее - в таблиц...

Эээ... выкинуть это всё в мусорное ведро, и нанять адекватного DBA (если это делается с целями Disaster Recovery). ;)

Саша-Воронов Автор вопроса
Yaroslav Schekin
Эээ... выкинуть это всё в мусорное ведро, и нанять...

если адекватный ДБА сможет сделать женерик отношения между различными таблицами, то я только за

Yaroslav Schekin
Эээ... выкинуть это всё в мусорное ведро, и нанять...

А если в базу другого вендора потом восстанавливать?

Саша Воронов
если адекватный ДБА сможет сделать женерик отношен...

Я отвечал на конкретный вопрос, Вы не заметили? ;)

Саша-Воронов Автор вопроса
Alexander Morozov
А если в базу другого вендора потом восстанавливат...

Если именно восстанавливать, то обычно есть специализированные средства (и зачастую это [нетривиальные] клиентские приложения). А если нужна гетерогенная репликация — тоже есть специализированные средства, и они, в самом деле, могут хранить названия таблиц в базе данных. В любом случае, ни к нормальному моделированию, ни к DR всё это не имеет отношения.

Alexander Morozov
А как тогда сделать, например следующее - в таблиц...

В таблице не должны храниться имена таблиц.

Ilya Zviagin
В таблице не должны храниться имена таблиц.

Почему нет? Для того же динамического SQL, особенно когда ко всем этим таблицам должна применяться одна и та же логика, — очень даже

Iurii Shaporenko
Почему нет? Для того же динамического SQL, особенн...

Потому что нет, потому что невозможно эти данные обрабатывать с помощью SQL.

Iurii Shaporenko
Почему нет? Для того же динамического SQL, особенн...

Если к таблицам должна применяться одна логика, таблица должна быть одна.

Iurii Shaporenko
Почему нет? Для того же динамического SQL, особенн...

Потому что это смешивание данных с метаданными. В основе многих antipatterns проектирования лежит вот это вот, если разобраться.

Похожие вопросы

Обсуждают сегодня

Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
господа, когда у вас в боте есть локализация (ру + англ, остальные языки пока не планируются), вы на первом старте как с языком решаете вопрос: смотрите на language_code приле...
Denis 🐍|👑 | darling! 🥰
5
у меня такой вопрос про память в x86 возник, может кто пояснить?.. у процессора есть (как минимум) 3 типа адресов (названия "п1", "п2", "п3" --- мои, чтобы проще было дальше)...
Toideng
10
Добрый день. Созданию отношения таблиц для учёта кораблей, их движения между точками (портами) согласно расписания. Терзают сомнения в правильном ли направлении двигаюсь 😅 1...
Aleksey
1
I have financial chart like this I can mask by color to get green and red squares. I want get two data First i want to get two last squares(two in the very right side colors) ...
@. .@
4
Я колись ставив гуглу антиспам 3.0, може і норм, але мені не дуже зайшло. Теж думав тиждень, що його і куди. Зупинився на трех варіантах відразу всі три і включив 1. Перевір...
𝓔𝓾𝓰𝓮𝓷𝓮𝓥 J
2
Всем привет, Добавил в плагин определение user agent public function registerMarkupTags() { return [ 'filters' => [ 'staticPage' => ['RainLab\Pages\Cl...
John Norton Kruger
3
Привет. Наверняка у кого-нибудь здесь есть опыт работы с трекерами (встроенными в OpenCV (KCF) или абстрагированными) на одноплатниках. Если не рассматривать малинку и други...
Georgy Makarov
4
Приветствую. Есть N видео объектов (фильмы). Часть полной длины просмотра а часть короткие ( обрезаны титры). Задача найти идентичные фильмы. Я не в курсе, есть ли аналог шаз...
Nikolay Chudinov
7
Карта сайта