sql >> Databáze >  >> RDS >> Mysql

Použití CONCAT se spouštěči MySQL (chyba na ,)

AKTUALIZOVÁNO:

  1. Zdá se, že jste nezměnili DELIMITER .
  2. S největší pravděpodobností jste mysleli CURRENT_TIMESTAMP místo neexistujícího CURTIMESTAMP()

Jak již bylo řečeno, syntakticky správná verze vašeho spouštěče může vypadat takto

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 ;

nebo (protože ve spouštěči máte jediný příkaz, můžete vynechat BEGIN ... END blok a DELIMITER ) jednoduše

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

Zde je SQLFiddle demo



  1. Šifrování zálohování databáze – doporučené postupy

  2. Vraťte seznam událostí spouštění serveru na serveru SQL Server

  3. Nelze se připojit k databázi mysql [strato]

  4. Ruby datetime vhodné pro srovnání mysql