SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » PostgreSQL » Как создать цепочку обновлений полей строки? (Как создать цепочку обновлений полей строки?)
Как создать цепочку обновлений полей строки? [сообщение #5762] Thu, 21 November 2024 15:47 Переход к предыдущему сообщению
DaniilGray в настоящее время не в онлайне  DaniilGray
Сообщений: 17
Зарегистрирован: October 2024
Junior Member
Дано: таблица.
В таблицу вставляется строка данных. При этом 6 столбцов таблицы не заполняются.
Через какое-то время строка обнаруживается и обрабатывается внешней программой и один из столбцов (пустойстолбец1) заполняется.
Я триггером BEFORE UPDATE успешно отслеживаю заполнение этого столбца.
Дальше... Дальше в триггерной функции, назначенной этому триггеру, я могу прописать:

NEW.пустойстолбец2:=NOW();
NEW.пустойстолбец3:=функция1(NEW.пус� �ойстолбец1);
NEW.пустойстолбец4:=NOW();
NEW.пустойстолбец5:=функция2(NEW.пус� �ойстолбец3);
NEW.пустойстолбец6:=NOW();

Проблема в том, что в пустых столбцах 2, 4 и 6 я получу одно и то же время. Попробовал использовать переменные - всё равно время одно и то же.

А как мне отслеживать время, потраченное на выполнение той самой внешней программы, функции1 и функции2 по отдельности?

Ведь при создании цепочки триггеров BEFORE UPDATE я на выходе получу те же самые строки, что и сейчас?
Или создавать кучу таблиц, куда будет переезжать поле-идентификатор строк, подлежащий обработке столбец, и при вставке строки будет запускаться соответствующая столбцу функция?
Для трёх столбцов ещё ладно, а если их сто будет?

Или пускай автор программы дописывает свою клятую программу, и запускает обновление всех столбцов по очереди с указанием времени?
 
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Предыдущая тема: Вопрос по триггерам
Следующая тема: The Internals of PostgreSQL
Переход к форуму:
  


Текущее время: Wed Dec 04 22:10:37 GMT+3 2024

Общее время, затраченное на создание страницы: 0.00986 секунд