Qairat
@Qairat
frontend developer, angular 2+

Как изменить данные в таблице при помощи триггера?

Всем привет!
Надо изменит значение полей который только что инсертился
Вот мой код, но выходит ошибка:
CREATE TRIGGER upd_bld AFTER INSERT ON MObjectBuildings
     FOR EACH ROW
     BEGIN
         IF Fabric = '' THEN
             SET Analysis='non';
         END IF;
     END;

Выходит ошибка Unknown system variable 'Analysis'
Действия должна происходит на том же таблице.
Как сделать?
  • Вопрос задан
  • 296 просмотров
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Во-первых, в триггере AFTER нельзя изменить данные той же таблицы, на которую назначен этот триггер.
Во-вторых, доступ к старому и новому содержимому строк в триггере осуществляется через ключи OLD. и NEW. соответственно.
В-третьих, ваш триггер гораздо логичнее работает через BEFORE
CREATE TRIGGER `upd_bld` BEFORE INSERT ON `MObjectBuildings`
     FOR EACH ROW
     BEGIN
         IF NEW.`Fabric` = '' THEN
             SET NEW.`Analysis` = 'non';
         END IF;
     END;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы