天下

记录修行的印记

存储过程(2)

#1.修改my.conf
# max_sp_recursion_depth = 16

delimiter //
CREATE TRIGGER doc_add AFTER INSERT ON doc_threads
for each row begin
update doc_forums set records=records+1 where fid=new.fid;
call syncfid(new.fid,1);
end;//
delimiter ;


delimiter //
CREATE TRIGGER doc_move AFTER UPDATE ON doc_threads
for each row begin
IF old.fid != new.fid then
update doc_forums set records=records+1 where fid=new.fid;
update doc_forums set records=records-1 where fid=old.fid;
call syncfid(new.fid,1);
call syncfid(old.fid,-1);
end IF;
end;
//
delimiter ;


delimiter //
CREATE TRIGGER doc_del AFTER DELETE ON doc_threads
for each row begin
update doc_forums set records=records-1 where fid=old.fid;
call syncfid(old.fid,-1);
end;//
delimiter ;


delimiter //
CREATE PROCEDURE `syncfid`(infid int,n int)
BEGIN
    declare tmpfid int default 0;
    SELECT fup into tmpfid from doc_forums where fid=infid;
    if tmpfid THEN
        update doc_forums set records=records+(n) where fid=tmpfid;
        call syncfid(tmpfid,n);
    end if;
END//
delimiter ;

posted on 2015-12-14 20:39 天下 阅读(187) 评论(0)  编辑 收藏 引用 所属分类: MySQL


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2013年3月>
242526272812
3456789
10111213141516
17181920212223
24252627282930
31123456

导航

统计

常用链接

留言簿(4)

随笔分类(378)

随笔档案(329)

链接

最新随笔

搜索

最新评论