Запросить все таблицы в схеме снежинки - PullRequest
1 голос
/ 05 августа 2020

Из-за способа хранения нашей базы данных у нас есть таблицы для каждого значительного события, которое происходит в течение срока службы продукта:

  • Получено
  • Продано
  • Доставлено

Мне нужно go через и узнать статус продукта в любой момент времени. Для этого мне нужно запросить все таблицы в схеме и найти запись с самой последней записью. Я знаю, что это возможно, объединив все таблицы, а затем найдя отметку времени MAX, но мне интересно, есть ли более элегантное решение?

Можно ли запросить все таблицы, просто запросив схему или базу данных root ? Есть ли способ l oop по всем таблицам в схеме и заменить это в предложение FROM?

Любая помощь приветствуется.

Спасибо

1 Ответ

1 голос
/ 05 августа 2020

Вы можете написать хранимую процедуру, но, IMO, это будет стоить усилий (и более элегантно), если список таблиц будет регулярно меняться. Если список таблиц относительно фиксирован, то создание оператора UNION, вероятно, является наиболее элегантным решением и относительно тривиальным для создания - если вы планируете использовать его регулярно, просто создайте его как View.

Как я всегда подход к этому типу проблемы (создание одного и того же SQL для нескольких таблиц) заключается в том, чтобы выгрузить список таблиц в Excel, сгенерировать оператор SQL для первой таблицы с использованием функций, скопировать эту функцию вниз для всех имен таблиц и затем объедините все эти операторы в финальную функцию. Затем вы можете просто вставить этот текст обратно в свой SQL редактор

...