Триггер в MySql не работает

140
28 сентября 2021, 03:00

я новичок в MySql, написал такой код:

  CREATE TRIGGER add_error_history ON errors
  AFTER INSERT AS
  IF (SELECT error_status FROM errors ORDER BY error_id DESC LIMIT 1) = "Новая"
    INSERT INTO error_history VALUES(errors.error_user, "Ввод", CURDATE());
  ELSE
    BEGIN
    IF (SELECT error_status FROM errors ORDER BY error_id DESC LIMIT 1) = "Открытая"
      INSERT INTO error_history VALUES(errors.error_user, "Открытие", CURDATE());
    END;

Задача: Чтобы при добавлении в таблицу errors одного значения, в таблице error_history появлялась автоматически новая строка с измененными значениями. Командная строка MySql ругается, в чем ошибка, ребят?

Answer 1

Написал вот так:

    DELIMITER // 
CREATE TRIGGER add_error_history AFTER INSERT ON errors
  FOR EACH ROW BEGIN
  IF (NEW.error_status = "Новая") THEN
      INSERT INTO error_history VALUES(NEW.error_user, "Ввод", CURDATE());
    END IF;
  IF (NEW.error_status = "Открытая") THEN
      INSERT INTO error_history VALUES(NEW.error_user, "Открытие", CURDATE());
    END IF;
END//
DELIMITER ;
READ ALSO
В MySQL как правильно записать TimeStamp=Timestamp + DateTime

В MySQL как правильно записать TimeStamp=Timestamp + DateTime

В хранимой процедуре MySQL есть две переменныеВ одной хранится в формате TimeStamp время регистрации,например '2020-01-15 14:30:33'

141
Вопрос по связи триггера и базы данных

Вопрос по связи триггера и базы данных

Есть вот такая скромная бд:

194
Посоветуйте базу данных для хранения больших таблиц

Посоветуйте базу данных для хранения больших таблиц

Какая бд лучше справиться с хранением больших таблиц, +30-50GИз вариантов MySQL 8

188
БД SQL запрос join

БД SQL запрос join

Всем привет!

142