AGGIORNATO:
- Sembra che tu non abbia modificato
DELIMITER. - Molto probabilmente intendevi
CURRENT_TIMESTAMPinvece diCURTIMESTAMP()inesistente
Detto questo, potrebbe sembrare una versione sintatticamente corretta del tuo trigger
DELIMITER $$
CREATE TRIGGER users_update_trigger
AFTER UPDATE ON users
FOR EACH ROW
BEGIN
INSERT INTO users_backlog (user_id, description, datetime) VALUES
(NEW.user_id, CONCAT('modified from ', OLD.hourly, ' to ', NEW.hourly), CURRENT_TIMESTAMP);
END$$
DELIMITER ;
oppure (poiché hai l'unica istruzione nel tuo trigger puoi omettere BEGIN ... END blocco e DELIMITER ) semplicemente
CREATE TRIGGER users_update_trigger
AFTER UPDATE ON users
FOR EACH ROW
INSERT INTO users_backlog (user_id, description, datetime) VALUES
(NEW.user_id, CONCAT('modified from ', OLD.hourly, ' to ', NEW.hourly), NOW());
Ecco SQLFiddle demo