В нашем приложении у нас есть два набора таблиц: один набор рабочих таблиц (с данными, которые в данный момент анализируются) и другой набор архивных таблиц (со всеми данными, которые даже были проанализированы, с тем же именем таблицы, но сa_
префикс).Структура таблиц одинакова, за исключением того, что в архивных таблицах есть дополнительный столбец run_id
для различения различных наборов данных.
В настоящее время у нас есть сценарий SQL, который копирует содержимое с помощью операторов, аналогичныхна это:
insert into a_deals (run_id, deal_id, <more columns>)
select maxrun, deal_id, <more columns>
from deals,
(select max(run_id) maxrun from batch_runs);
Это работает нормально, но всякий раз, когда мы добавляем новый столбец в таблицу, мы также должны mpdify сценария.Есть ли лучший способ сделать это стабильным, когда у нас есть новые столбцы?(Конечно, структуры должны совпадать, но мы бы хотели, чтобы у нас не было необходимости изменять сценарий.)
FWIW, мы используем Oracle в качестве нашей СУБД.