När du skriver en trigger måste du ange en avgränsare så att mysql explicit exekverar ditt triggerblock inom den angivna avgränsaren. Om avgränsaren inte tillhandahålls när den stöter på någon ;
inom trigger-satsen kommer den att försöka köra kommandot till det blocket och därför kan du få fel.
Om du använder något användargränssnittsverktyg för att generera triggern kan du kontrollera om det finns ett alternativ att ställa in avgränsaren som i PHPMyadmin.
I CLI måste utlösaren ha en avgränsare och den blir
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 ;