主页
软件技术
返回
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 

        


评标要排除“八个因素”的干扰(中)
【学员心声】超越自己,高分再现
六安至武汉高速公某合同段某连拱隧道施工组织设计
建筑工程:工程造价的全过程管理
建设工程合理管理自测题(一)
秦皇岛2015年度注册安全工程师考试报名时间为4月22日至5月13日
2015造价工程师考试《计价与控制》精简教材知识点(1)
第13届中国国际建筑智能化峰会(广州站)于12月13日举办
信息发布:名易软件http://www.myidp.net