Chinaunix首页 | 论坛 | 博客
  • 博客访问: 549973
  • 博文数量: 76
  • 博客积分: 2990
  • 博客等级: 少校
  • 技术积分: 827
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-26 10:53
文章分类

全部博文(76)

文章存档

2011年(47)

2010年(13)

2009年(5)

2008年(11)

分类: Mysql/postgreSQL

2011-07-15 15:47:20

mysql批量更新优化之触发器

需要以A表的更新来同步刷新B表的数据.B表是1个大表.记录行数比是A表的10倍.
已有的同步更新方式,
update product.order_list a left join product.user b on a.email=b.email set a.lastlogin=b.lastlogin;

改进以后的同步更新方式:每当A表有更新时,即利用触发器同步更新B表的记录.联接列由email改成uid

触发器脚本:
DELIMITER $$
CREATE TRIGGER user_update BEFORE UPDATE ON product.user FOR EACH ROW
BEGIN
IF NEW.lastlogin<>OLD.lastlogin THEN
UPDATE product.order_list r SET r.lastlogin= New.lastlogin WHERE  r.uid= NEW.uid;
END IF;
END $$
DELIMITER ;
阅读(4177) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~