Mysql
 sql >> Base de données >  >> RDS >> Mysql

DÉCLENCHEUR MySQL/MariaDB

Lorsque vous écrivez un déclencheur, vous devez spécifier un délimiteur afin que mysql exécute explicitement votre bloc de déclencheur dans le délimiteur spécifié. Si le délimiteur n'est pas fourni, alors lorsqu'il rencontre un ; dans l'instruction de déclenchement, il essaiera d'exécuter la commande jusqu'à ce bloc et vous risquez donc d'obtenir des erreurs.

Si vous utilisez des outils d'interface utilisateur pour générer le déclencheur, vous pouvez vérifier s'il existe une option pour définir le délimiteur comme dans PHPMyadmin.

Dans CLI, le déclencheur doit avoir un délimiteur et il devient

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 ;