Могу ли я сделать MySQL события триггера более подробными? - PullRequest
0 голосов
/ 20 марта 2020

Я начинающий с MySQL. Я хочу создать триггер с более конкретным c условием (конкретным c оператором), чем просто INSERT, UPDATE, DROP и т. Д. c. Например, я хотел бы что-то вроде следующего:

CREATE TRIGGER name AFTER UPDATE table1 SET column1 = 'P' WHERE column2 = 'Q' FOR EACH ROW UPDATE table2 SET column1 = 42 WHERE column2 = 66;

Где AFTER UPDATE table1 SET column1 = 'P' WHERE column2 = 'Q' будет событием триггера, а UPDATE table2 SET column1 = 42 WHERE column2 = 66 будет действием триггера.

1 Ответ

0 голосов
/ 20 марта 2020

Вы можете проверить старые и новые значения для UPDATE через псевдоряд old и new. Конечно, вы можете использовать их в своей логике c.

CREATE TRIGGER name
               AFTER UPDATE
                     ON table1
               FOR EACH ROW
BEGIN
  IF new.column1 = 'P'
     AND old.column2 = 'Q' THEN
    UPDATE table2
           SET column1 = 42
           WHERE column2 = 66;
  END IF;
END;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...