Есть ли способ работать только с измененными записями до обновления триггера MySQL? - PullRequest
0 голосов
/ 19 апреля 2011

Мне нужен оператор, который позволяет изменять некоторые поля в таблице1 при обновлении таблицы2.

В настоящее время у меня есть следующий код:

delimiter //
CREATE TRIGGER check BEFORE UPDATE ON table2
FOR EACH ROW
BEGIN
    IF NEW.Count <> OLD.Count THEN
        ...
    END IF;
END//
delimiter ;

Однако table1 очень велик и там много событий обновления, поэтому я боюсь, что этот код может замедлить мой сервер. Поэтому я хочу знать, есть ли какое-нибудь решение, которое не будет просматривать все записи в нем, а только те, которые обновлены?

1 Ответ

0 голосов
/ 19 апреля 2011

Триггер не будет "просматривать" все записи. Поскольку вы объявили триггер как FOR EACH ROW, в триггере будет обрабатываться только одна строка.

Поскольку триггер выполняется для каждой строки, NEW и OLD ссылаются на одну строку как, что означает, что условие NEW.Count <> OLD.Count просто сравнивает два (простых) значения столбца

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