sql >> Database teknologi >  >> RDS >> Mysql

Brug af CONCAT med MySQL-triggere (fejl ved ,)

OPDATERET:

  1. Det ser ud til, at du ikke har ændret DELIMITER .
  2. Du mente højst sandsynligt CURRENT_TIMESTAMP i stedet for ikke-eksisterende CURTIMESTAMP()

Når det er sagt, kan en syntaktisk korrekt version af din trigger se ud

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 (fordi du har den eneste sætning i din trigger, kan du udelade BEGIN ... END blok og DELIMITER ) simpelthen

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

Her er SQLFiddle demo



  1. bestil efter inden for gruppekonkat

  2. Hvordan bruger man mysqli forberedte udsagn?

  3. Hvordan initialiserer man mysql container, når den oprettes på Kubernetes?

  4. Sådan får du alle de tabeller, der har primær nøglebegrænsning, oprettet i SQL Server-database - SQL Server / TSQL Tutorial 57