No tengo tiempo para explicarte cual podria ser el problema pero aqui esta tu respuesta.
* Si es un trigger de tipo INSERT, entonces para acceder a los campos se debe utilizar el prefijo NEW.
* Si es un trigger de tipo UPDATE, entonces NEW nos dará el nuevo valor del campo (en caso de que haya sido modificado) y OLD nos dará el valor del campo antes de la modificación.
* Si es un trigger de tipo DELETE, se debe utilizar únicamente el prefijo OLD.
* Solamente se pueden modificar los valores de los campos en triggers de tipo BEFORE, obviamente solo BEFORE INSERT y BEFORE UPDATE.
* Se recomienda que si se van a modificar valores de otras tablas, se hagan en triggers de tipo AFTER.
Esto se encuenta en el link
Mira aqui