Помогите сделать архивацию данных

Доброго времени суток Всем

Я не имею практического опыта исполюзования PostgreSQL. Работал раньше с мелкософтом.
Вопрос состоит в следующем:

Есть куча однотипных таблиц: journalXXXX (где XXXX цифры)
В них записываются данные с разных объектов где XXXX номер объекта
И есть таблица archjournal куда раз в месяц надо переносить данные из этих таблиц а затем эти очищать от данных
Как сделать чтобы происходил такой перенос то есть по очереди из каждой таблицы journalXXXX переносились данные в archjournal?

Спасибо
Извините за ламерность вопроса и его изложение

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Думаю поможет

Думаю поможет сочетание INSERT ... AS SELECT выполняемые раз в месяц, после чего DELETE.
Возможно более изящным решением было бы навесить на таблицы journalXXXX триггеры, который бы при INSERT или UPDATE таблицы, добавляли бы или изменяли данные в archjournal.

как-то так

CREATE FUNCTION "sma"."do_arch" () RETURNS BOOLEAN AS
$body$
DECLARE
  tn int;
  table_name text;
BEGIN
  FOR tn IN 1000..9999 
  loop
     table_name:='sma.journal'||tn::text;
     execute 'insert into archjournal as select * from '|| table_name;
     execute 'delete from '||table_name;
  end loop;
  RETURN true;
END;
$body$
LANGUAGE 'plpgsql'

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023