トリガーを作成するときは、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 ;