Mysql
 sql >> Base de données >  >> RDS >> Mysql

Utilisation de CONCAT avec les déclencheurs MySQL (Erreur à ,)

MIS À JOUR :

  1. Il semble que vous n'ayez pas modifié DELIMITER .
  2. Vous vouliez probablement dire CURRENT_TIMESTAMP au lieu de CURTIMESTAMP() inexistant

Cela étant dit, une version syntaxiquement correcte de votre déclencheur pourrait ressembler à

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 ;

ou (parce que vous avez la seule instruction dans votre déclencheur, vous pouvez omettre BEGIN ... END bloc et DELIMITER ) simplement

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

Voici SQLFiddle démo