zoukankan      html  css  js  c++  java
  • mysql 存储过程

    存储过程

     *存储过程是sql语句和控制语句的预编译集合,以一个名称存储并作为一个单元处理

    存储过程优点

    1.增强sql语句的灵活性
    2.实现较快的执行速度 第一次和一般一样,第二次不用语法分析,编译,直接从内存执行
    3.减少网络流量 客户端通过http请求发sql字节多,只需调用存储过程名字,和要操作的id,如删除操作

    创建存储过程

    in表示该参数的值必须在调用存储过程时指定,在存储过程中,不能返回

    out表示该参数的值可以被存储过程改变,并可以返回

    inout表示该参数的值必须在调用存储过程时指定,可以被改变,返回

    简单的存储过程

    create procedure sp1() select version();
    call sp1; //调用存储过程
    

    IN 存储过程 id = id 会将表里的数据全部删除,in里的参数不能与字段起名一样

    create procedure removeUserId(in id int unsigned)
    begin
    delete from tdb_goods_cates where id = id;
    end
    call removeUserId(3)
    

    IN OUT 删除一行,返回剩余行数

    delimiter $;
    create procedure removebrandAndReturnNums(in p_id int unsigned, out nums int unsigned)
    begin
    delete from tdb_goods_brands where p_id = brand_id;
    select count(brand_id) from tdb_goods_brands into nums;
    end
    delimiter ;
    call removebrandAndReturnNums(4,@nums);
    
    select @nums       //用户变量
    
    

    三个参数 存储过程

    delimiter $
    create procedure removeGoodsAndReturn(in p_brand smallint unsigned,out deleteGoods smallint unsigned,out goodsCount smallint unsigned)
    begin 
    delete from tdb_goods where brand_id = p_brand;
    select row_count() into deleteGoods;
    select count(goods_id) from tdb_goods into goodsCount;
    end
    delimiter ;
    
    call removeGoodsAndReturn(7,@a,@b);
     
    select @a;
    
  • 相关阅读:
    ActionScript 条件编译
    FLASH通讯小结
    关于ob_start()
    剖析PHP中的输出缓冲
    Ext.app.controller的refs
    php多线程解决之stream_socket_client
    谷歌的JQuery库
    PHP计划任务之关闭浏览器后仍然继续执行的函数
    关于php调用可执行程序,在后台运行而不让页面等待
    把预定义的字符串转化为html标签
  • 原文地址:https://www.cnblogs.com/binxyz/p/7451310.html
Copyright © 2011-2022 走看看