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

Uso de CONCAT con disparadores de MySQL (Error en ,)

ACTUALIZADO:

  1. Parece que no cambiaste DELIMITER .
  2. Lo más probable es que haya querido decir CURRENT_TIMESTAMP en lugar de inexistente CURTIMESTAMP()

Dicho esto, una versión sintácticamente correcta de su disparador podría verse como

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 ;

o (debido a que tiene la única declaración en su disparador, puede omitir BEGIN ... END bloque y DELIMITER ) simplemente

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());

Aquí está SQLFiddle demostración