sql >> Database >  >> RDS >> Mysql

CONCAT gebruiken met MySQL-triggers (fout bij ,)

GE-UPDATE:

  1. Het lijkt erop dat je DELIMITER niet hebt gewijzigd .
  2. U bedoelde hoogstwaarschijnlijk CURRENT_TIMESTAMP in plaats van niet-bestaande CURTIMESTAMP()

Dat gezegd hebbende, zou een syntactisch correcte versie van uw trigger eruit kunnen zien

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 ;

of (omdat je de enige instructie in je trigger hebt, kun je BEGIN ... END weglaten blok en DELIMITER ) gewoon

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

Hier is SQLFiddle demo



  1. Hoe de create table sql-instructie voor een bestaande tabel in postgreSQL te genereren?

  2. Zoekopdracht op volgorde van de laatste drie tekens van een kolom

  3. Problemen met contenttypes bij het laden van een fixture in Django

  4. MySQL - Bepaal welke rij door een groep wordt geretourneerd door