Изменить триггер на после вставки - PullRequest
0 голосов
/ 25 февраля 2020

Я не знаю, как изменить триггер, чтобы он работал после вставки

CREATE OR REPLACE TRIGGER create_event_from_task BEFORE INSERT ON llx_projet_task
FOR EACH ROW
BEGIN
    INSERT INTO llx_actioncomm (priority, fulldayevent, location, label, fk_element, elementtype, fk_project, datep, datef, percentage, note)
    SELECT 0, 0, ' ', CONCAT(:new.ref, CONCAT(' - ', :new.label)), :new.id, 'project_task', :new.fk_project, :new.date_start, :new.date_end, :new.progress, :new.description
    FROM llx_projet_task;
END;
/

1 Ответ

1 голос
/ 25 февраля 2020

Вы читаете таблицу, из которой происходит событие триггера (из-за этой мутации произошла ошибка для более подробной информации проверьте здесь ). у вас уже есть значение в терминах new.something, поэтому нет необходимости извлекать значение из таблицы. просто используйте это значение

CREATE OR REPLACE TRIGGER create_event_from_task AFTER INSERT ON llx_projet_task
FOR EACH ROW
BEGIN
    INSERT INTO llx_actioncomm (priority, fulldayevent, location, label, fk_element, elementtype, fk_project, datep, datef, percentage, note)
   VALUES( 0, 0, ' ', CONCAT(:new.ref, CONCAT(' - ', :new.label)), :new.id, 'project_task', :new.fk_project, :new.date_start, :new.date_end, :new.progress, :new.description);
END;
...