• 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;
    
  • 相关阅读:
    关于oracle的一些操作
    关于List的一些操作
    XSS挑战赛(2)
    阿里云图床搭建
    XSS挑战赛(1)
    Shiro remeberMe反序列化漏洞复现(Shiro-550)
    HTTP慢速拒绝服务攻击(Slow HTTP Dos)
    从Excel获取整列内容进行批量扫描
    PHP代码审计分段讲解(14)
    PHP代码审计分段讲解(13)
  • 原文地址:https://www.cnblogs.com/binxyz/p/7451310.html
Copyright © 2020-2023  润新知