Выполнить триггер на той же таблице при обновлении - PullRequest
0 голосов
/ 29 марта 2019

Я хочу выполнить триггер в phpMyAdmin-MySQL, который включает в себя оператор UPDATE для той же таблицы, например:

create trigger AFTER INSERT ON Table
  FOR EACH ROW BEGIN
    UPDATE Table
      SET Total = NEW.Total + 1.03
      WHERE order_number = NEW.order_number;
   END

Может быть, это невозможно получить. Если нет, есть ли способ симулировать это?

1 Ответ

2 голосов
/ 29 марта 2019

В MySQL есть ограничение, что вы не можете обновить одну и ту же таблицу в триггере.Однако, если order_number уникален для INSERT, я думаю, что вы можете достичь того же результата, изменив вместо него значение Total в триггере BEFORE INSERT:

CREATE TRIGGER update_total BEFORE INSERT ON Table
FOR EACH ROW 
BEGIN
  SET NEW.Total = NEW.Total + 1.03;
END

Демонстрация на dbfiddle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...