sql >> Databasteknik >  >> RDS >> Mysql

Använda CONCAT med MySQL-utlösare (fel vid ,)

UPPDATERAD:

  1. Det verkar som att du inte har ändrat DELIMITER .
  2. Du menade med största sannolikhet CURRENT_TIMESTAMP istället för obefintlig CURTIMESTAMP()

Med det sagt kan en syntaktisk korrekt version av din trigger se ut

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 ;

eller (eftersom du har det enda påståendet i din trigger kan du utelämna BEGIN ... END block och DELIMITER ) helt enkelt

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

Här är SQLFiddle demo



  1. Skillnaden mellan två datum och tid i sql-server

  2. Hur utför jag en infogning och returnerar insatt identitet med Dapper?

  3. Uppdatera innehåll automatiskt om databasen ändras

  4. MySQL BLOB vs fil för lagring av små PNG-bilder?