Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL/MariaDB TRIGGER


Quando você escreve um gatilho, você deve especificar um delimitador para que o mysql execute explicitamente seu bloco de gatilho dentro do delimitador especificado. Se o delimitador não for fornecido, quando encontrar qualquer ; dentro da instrução de gatilho, ele tentará executar o comando até esse bloco e, portanto, você poderá obter erros.

Se você estiver usando alguma ferramenta de interface do usuário para gerar o gatilho, verifique se há uma opção para definir o delimitador como no PHPMyadmin.

Na CLI o trigger precisa ter um delimitador e fica
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 ;