El activador que muestra arriba está bien.
editar: Cuando crea un disparador en la GUI de phpMyAdmin, solo necesita ingresar el cuerpo del disparador en la Definición panel, en otras palabras, la parte BEGIN...END .
Esto se debe a que phpMyAdmin intentará ser inteligente y escribirá el encabezado de activación por usted en función de los otros elementos que ingrese (nombre, tabla, hora, evento).
Esta es la forma correcta de definir un disparador en phpMyAdmin:

Si escribe el CREATE TRIGGER... encabezado dentro del cuerpo, confundirá a MySQL porque verá CREATE TRIGGER... CREATE TRIGGER... BEGIN...END . Esto hace que MySQL piense que está definiendo un disparador cuya primera declaración es CREATE TRIGGER .
Como un tema secundario de su pregunta original, sugeriría algunos cambios en el cuerpo del disparador:
CREATE TRIGGER Update_Last_Transit_Status AFTER INSERT ON Delivery
FOR EACH ROW
BEGIN
UPDATE Transportation
INNER JOIN Transit ON Transit.Transportation_ID = Transportation.ID
INNER JOIN Route ON Transit.ID = Route.Transit_ID
SET Transportation.Status = 'Dispatched'
WHERE Route.Delivery_ID = NEW.ID
AND Transportation.Status = 'In Branch';
END
Los cambios:
- Referencia
NEW.IDen lugar deDelivery.ID. - Utilice SQL-92
JOINsintaxis en lugar de SQL-89 "estilo de coma" se une. - Usar
UPDATEde varias tablas con uniones, en lugar deEXISTScon subconsulta correlacionada. - Utilice comillas simples para cadenas en lugar de comillas dobles.
- Termina la
UPDATEdeclaración con un punto y coma.