У меня есть канал, в котором читатель настроен на выполнение SQL-запроса каждые 5 секунд и вставку новой строки в другую таблицу.
Таблица, в которую он будет вставлять данные:
CREATE TABLE timings(
id SERIAL NOT NULL,
type TEXT NOT NULL,
time TIMESTAMP NOT NULL
);
Запрос в постпроцессоре:
INSERT INTO timings (type, time) VALUES (${name}, NOW());
${name}
исходит из основного SQL-запроса.
После того, как запрос был выполнен (тот, который сгенерирует сообщение), он выполняет запрос постпроцессора, даже если из запроса ничего не выводится. Есть ли способ запустить сценарий постпроцессора только тогда, когда запрос SQL что-то возвращает?
Кроме того, он использует имя последнего обновления каждые 5 секунд, хотя данные не генерируются. Странно то, что он использует последнее имя обновления (${name}
) для всех новых INSERT
, что приводит к большому количеству строк, содержащих одни и те же данные (за исключением столбца time
). Это нормально?
Я использую PostgreSQL в качестве движка базы данных.