我需要一个语句,允许在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非常大并且有很多更新事件,所以我担心这段代码可能会减慢我的服务器速度。所以我想知道是否有一些解决方案不会查看其中的所有记录,只会更新那些?
答案 0 :(得分:0)
触发器不会“查看”所有记录。因为您将触发器声明为FOR EACH ROW
,所以触发器中只会处理一行。
由于触发器是针对每一行执行的,NEW
和OLD
引用单个行,这意味着条件NEW.Count <> OLD.Count
只是比较两个(简单的)列值