Mysql
 sql >> Database >  >> RDS >> Mysql

TRIGGER MySQL/MariaDB

Quando scrivi un trigger devi specificare un delimitatore in modo che mysql esegua esplicitamente il blocco del trigger all'interno del delimitatore specificato. Se il delimitatore non viene fornito, quando incontra qualsiasi ; all'interno dell'istruzione trigger tenterà di eseguire il comando fino a quel blocco e quindi potresti ricevere errori.

Se stai utilizzando qualsiasi strumento dell'interfaccia utente per generare il trigger, puoi verificare se esiste un'opzione per impostare il delimitatore come in PHPMyadmin.

In CLI il trigger deve avere un delimitatore e diventa

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 ;