• 触发器和存储过程


    触发器用处还是很多的,比如校内网、开心网、Facebook,你发一个日志,自动通知好友,其实就是在增加日志时做一个后触发,再向通知表中写入条目。因为触发器效率高。而UCH没有用触发器,效率和数据处理能力都很低。
    存储过程的实验步骤:
    mysql> delimiter |
    mysql> create procedure insertArticle_Procedure (pTitle varchar(50),pBid int,out
    pId int)
    -> begin
    -> insert into article1value(null,pTitle,pBid);
    -> select max(id) into pId fromarticle1;
    -> end;
    -> |
    Query OK, 0 rows affected (0.05sec)
    mysql> callinsertArticle_Procedure('传智播客',1,@pid);
    -> |
    Query OK, 0 rows affected (0.00sec)
    mysql> delimiter ;
    mysql> select @pid;
    +------+
    | @pid |
    +------+
    | 3 |
    +------+
    1 row in set (0.00 sec)
    mysql> select * fromarticle1;
    +----+--------------+------+
    | id | title | bid |
    +----+--------------+------+
    | 1 | test | 1 |
    | 2 | chuanzhiboke | 1 |
    | 3 | 传智播客 | 1 |
    +----+--------------+------+
    3 rows in set (0.00 sec)
    触发器的实验步骤:
    create table board1(id intprimary key auto_increment,name varchar(50),ar
    ticleCount int);
    create table article1(id intprimary key auto_increment,title varchar(50)
    ,bid int referencesboard1(id));
    delimiter |
    create triggerinsertArticle_Trigger after insert on article1 for each ro
    w begin
    -> update board1 setarticleCount=articleCount+1 where id= NEW.bid;
    -> end;
    -> |
    delimiter ;
    insert into board1 value(null,'test',0);
    insert into article1value(null,'test',1);
    还有,每插入一个帖子,都希望将版面表中的最后发帖时间,帖子总数字段进行同步更新,用触发器做效率就很高。下次课设计这样一个案例,写触发器时,对于最后发帖时间可能需要用declare方式声明一个变量,或者是用NEW.posttime来生成。

  • 相关阅读:
    模板实参演绎
    模板实例化
    模板中的名称
    友元函数在类中的声明在外围是不可见的
    C++ 宽字符(wchar_t)与窄字符(char)的转换
    ImageButton如何让图片按比例缩放不被拉伸
    C++模板实例化(1)
    android开发之GenyMotion与intelliJ的配置
    jacoco报告表头注释
    Spring源码工具类之StringUtils
  • 原文地址:https://www.cnblogs.com/dongfengyuxy/p/5852627.html
Copyright © 2020-2023  润新知