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

        


时评:新兴旅游城市如何摆脱“鬼城”梦魇
张诚:田园综合体既是文旅项目又是城镇化项目
王健林:用三年时间证明世界文化旅游高点在中国
刘麒魁:新农村建设必然会朝着绿色建筑发展
09年一级建造师考试《法规及相关知识》辅导资料(84)
如何做好建筑项目的成本分析
建设领域多项法规标准6月起施行
09年一级建造师工程经济辅导资料:财务评价的内容
信息发布:名易软件http://www.myidp.net