Триггер postgres 9.6 также не позволяет вставлять записи в исходную таблицу - PullRequest
0 голосов
/ 13 марта 2019

Я пишу триггер, приведенный ниже

Когда я вручную вставляю запрос в исходную таблицу, это означает, что report.cpu_utilization_perf мой триггер cpu_current_timestamp_trigger работает нормально. когда я вставляю другую строку в исходную таблицу, мой триггер обновляет строку, столбец имени хоста которой существует в предыдущем.

 CREATE OR REPLACE FUNCTION report.cpu_current_uti_insert()
  RETURNS trigger AS
$$
BEGIN
IF (SELECT 1 FROM report.cpu_utilization_perf_current_time WHERE hostname = NEW.hostname)
THEN
 UPDATE report.cpu_utilization_perf_current_time
   SET "timestamp"=NEW.timestamp,  cpu_utilization_percentage=NEW.cpu_utilization_percentage
 WHERE hostname=NEW.hostname;
 RETURN NEW;
ELSE 
insert into report.cpu_utilization_perf_current_time (hostname,"timestamp",cpu_utilization_percentage)
         VALUES(NEW.hostname,NEW.timestamp,NEW.cpu_utilization_percentage)  ;
         RETURN NEW;
 END IF;
 END
$$
LANGUAGE 'plpgsql';



  DROP TRIGGER IF EXISTS cpu_current_timestamp_trigger
  ON report.cpu_utilization_perf;
CREATE TRIGGER cpu_current_timestamp_trigger
  AFTER INSERT 
  ON report.cpu_utilization_perf
  FOR EACH ROW EXECUTE PROCEDURE report.cpu_current_uti_insert();

Когда я запускаю любое пакетное задание Java из 1000 записей, вставьте его. Мой триггер тоже работает нормально. Но проблема в том, что данные, поступающие из другого источника, например, из пакетного задания сценария оболочки, в исходную таблицу. Мой триггер не работает. Триггер также останавливает вставку записи в исходную таблицу. когда я сбрасываю данные моего триггера и функции, поступающие из другого источника, работает нормально и вставляю новые строки с интервалом 1 мин.

Пакетное задание сценария оболочки - вставка записи в исходную таблицу с интервалом в 1 минуту. Каждое минимальное задание вставляет новую строку в исходную таблицу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...