更新MySQL触发器之前是否有任何方法只能使用已更改的记录?

时间:2011-04-19 15:14:05

标签: mysql triggers

我需要一个语句,允许在table2更新时更改table1中的某些字段。

我目前有以下代码:

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 :(得分:0)

触发器不会“查看”所有记录。因为您将触发器声明为FOR EACH ROW,所以触发器中只会处理一行。

由于触发器是针对每一行执行的,NEWOLD引用单个行,这意味着条件NEW.Count <> OLD.Count只是比较两个(简单的)列值