Я пытаюсь написать триггер, в котором мне нужно создать Json после получения данных (нескольких строк) из другой таблицы. У меня есть две таблицы задач и данных. таблица данных содержит несколько сведений о задаче в паре ключ / значение.
task schema
taskid
description
value
схема таблицы данных
id
taskid
key
value
Теперь в триггере я хочу получить все данные, соответствующие задаче, и подготовить JSON от этого. Я использую ниже
CREATE OR REPLACE FUNCTION event()
RETURNS trigger AS
$BODY$
DECLARE
_message json;
_data data;
BEGIN
SELECT * INTO _data FROM data WHERE data.taskid = New.taskid;
IF TG_OP = 'INSERT' THEN
_messag:=json_build_object('taskId',NEW.taskid,'description',NEW.description,'value',NEW.value,'clientis',_data);
END IF;
INSERT INTO events(message)
VALUES(_messag);
RETURN NULL;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
Здесь я использую запрос ниже, чтобы получить все данные из таблицы данных, соответствующей taskid
SELECT * INTO _data FROM data WHERE data.taskid = New.taskid;
Здесь проблема в том, что я получаю только один ряд Как можно получить все строки? Если у кого есть идеи?