主页
软件技术
返回
MySQL存储过程实例介绍

        存储过程

        1、创建

        delimiter // --修改分隔符,否则将以;作为结束符 create procedure myProc() –创建存储过程 begin

        select * from salary ; end

        //

        delimiter ; --考虑使用习惯,将分隔符改为;

        

        2、执行存储过程

        

        3、创建带IN参数的存储过程

        delimiter //

        create procedure myProc1(IN id int ) —用IN表示该参数为输入参数

        begin

        select * from one where oneId=id; end

        //

        

        delimiter ;

        set @id=13 ;--设置参数值

        call myproc1(@id);--调用存储过程

        

        4、IN参数不能修改参数值 delimiter // create procedure myProc2(IN p_in int)

        begin

        select p_in ; set p_in=2;--设置输入参数值 select p_in; end

        //

        

        delimiter ;

        call myProc2(@p_in);--在存储过程中p_in参数值会改变

        

        存储过程执行完后,参数值p_in 并没有改变。

        

        5、带OUT参数的存储过程

        delimiter //

        create procedure myProc3(OUT rowCount int) begin

        select count(*) into rowCount from one ; end

        //

        

        delimiter ;

        select count(*) from one ;

        

        select @rowCount ;

        

        call myProc3(@rowCount);

        

        6、IN和OUT参数一起使用

        delimiter //

        create procedure myProc4(IN id int,OUT rowCount int)

        begin

        select count(*) from one where oneId=id ;

        end

        //

        delimiter ;

        

        设置输入参数id

        SET @id=13;

        

        调用参数过程

        call myProc4(@id,@rowCount);

        

        7、INOUT参数

        delimiter //

        create procedure myProc5(INOUT p_inout int)

        begin

        select p_inout; set p_inout = 2 ; select p_inout ; end

        //

        

        delimiter ;

        --执行存储过程之前

        

        call myProc5(@p_inout);

        --执行存储过程之后

        

        

        8、存储过程的应用

        create procedure AddHuman(IN hName varchar(20),IN hAddress varchar(20))

        begin

        DECLARE hId int ;

        set hId=0 ;

        select houseId into hId from house where houseAddress=hAddress ;

        insert into human(humanId,humanName,houseId)

        values(null,hName,hId);

        end

        create procedure AddHuman1(IN hName varchar(20),IN hAddress varchar(20))

        begin

        DECLARE hId int ;

        set hId=0 ;

        select houseId into hId from house where houseAddress=hAddress ;

        if hId >0 then

        insert into human(humanId,humanName,houseId)

        values(null,hName,hId);

        end if ;

        end 

        


小学施工组织设计方案129p
对大型灌区续建配套节水改造规划的几点思考
一级建造师考试地点(北京东城区)
发展规模农业须量力而行 切莫盲目攀比
2015二级建造师《市政工程》复习指导(18)
2015年监理工程师考试《案例分析》复习题(12)
地下室混凝土垫层技术交底
住宅工程墙柱梁板梯模板施工技术交底
信息发布:名易软件http://www.myidp.net