Я пытаюсь обновить определенные фрагменты данных на основе оператора выбора в триггере. Оператор выбора выглядит следующим образом:
SELECT col1
FROM tbl1 d
LEFT OUTER JOIN tbl2 e ON D.colid = E.colid
Затем я хочу изменить данные, возвращаемые этим оператором, на новое значение, вычисленное в триггере. Я думал, что это может быть что-то вроде e.col1 = COUNTER
, но это не похоже на работу. Любая помощь с обновлением этих данных была бы отличной, спасибо.
РЕДАКТИРОВАТЬ: я изменил запрос выбора, чтобы получить данные, которые я на самом деле хочу. Тот, который я изложил выше, был неправильным.
UPDATE tbl2 SET col1 = COUNTER
WHERE EXISTS(SELECT col1
FROM tbl1 d
LEFT OUTER JOIN tbl2 e ON D.colid = E.colid
WHERE col2= :new.col2);
Я должен еще раз заявить, что проблема при использовании приведенного выше кода заключается в том, что весь столбец в таблице обновляется в отличие от данных, возвращаемых запросом select.
EDIT:
tbl1 содержит столбцы colid, col2 и
tbl2 содержит столбцы colid, col1
Триггер перед вставкой на tbl1.