Mysql
 sql >> база данни >  >> RDS >> Mysql

Използване на CONCAT с MySQL тригери (Грешка при ,)

АКТУАЛИЗИРАНО:

  1. Изглежда, че не сте променили DELIMITER .
  2. Най-вероятно сте имали предвид CURRENT_TIMESTAMP вместо несъществуващ CURTIMESTAMP()

Като се има предвид това, синтактично правилната версия на вашия тригер може да изглежда така

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 ;

или (тъй като имате единствения израз във вашия тригер, можете да пропуснете BEGIN ... END блок и DELIMITER ) просто

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

Ето SQLPiddle демонстрация



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Системната променлива MESSAGE_TEXT не работи с оператор SIGNAL в Mysql?

  2. Таблици с обобщени данни

  3. Актуализирайте списък с неща, без да удряте всеки запис

  4. Как да зададете променливи на средата за Laravel 5 на AWS EC2 с MySQL

  5. MySQL IFNULL N/A добив елемент не може да бъде намерен в колекцията Грешка