sql >> Base de Datos >  >> RDS >> Mysql

DISPARADOR MySQL/MariaDB

Cuando escribe un disparador, debe especificar un delimitador para que mysql ejecute explícitamente su bloque disparador dentro del delimitador especificado. Si no se proporciona el delimitador, cuando encuentre cualquier ; dentro de la declaración de activación, intentará ejecutar el comando hasta ese bloque y, por lo tanto, es posible que obtenga errores.

Si está utilizando alguna herramienta de interfaz de usuario para generar el activador, puede verificar si hay una opción para establecer el delimitador como en PHPMyadmin.

En CLI, el activador debe tener un delimitador y se convierte en

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 ;