Когато пишете тригер, трябва да посочите разделител, така че mysql изрично да изпълнява вашия блок за задействане в рамките на посочения разделител. Ако разделителят не е предоставен, тогава, когато срещне ;
в рамките на оператора за задействане той ще се опита да изпълни командата до този блок и следователно може да получите грешки.
Ако използвате инструменти за потребителски интерфейс за генериране на тригера, можете да проверите дали има опция за задаване на разделителя като в PHPMyadmin.
В CLI тригерът трябва да има разделител и той става
delimiter //
create trigger Q_DUR_CALC before insert on TASK_Q_SWH
for each row
begin
declare LCL_Q_DUR INTEGER;
set LCL_Q_DUR = new.TQ_TASK_DUR - new.TQ_TASK_RUN_DUR;
SET new.TQ_Q_DUR = LCL_Q_DUR;
end;//
delimiter ;