MySQL 存储过程

MySQL 存储过程

删除存储过程,创建前请确定没有与要创建的同名的存储过程
drop procedure if exists 存储过程名;

创建存储过程
单行语句存储过程
    create procdure 存储过程名(参数及类型) 语句;
多行语句存储过程(注:若结束符为;,首先用delimiter修改结束符)
    delimiter ;;
    create procedure 存储过程名(参数及类型)
    begin
        语句一;
        语句二;
        -- ...
    end
例一:create procedure pr_hi() select 'hi';
例二:创建一个计算两个数之和的存储过程
delimiter ;;        --设置mysql结束符为;;
create procedure pr_add( a int, b int )   
begin
    if a is null then        --注意在sql中数据项可以为null,注意处理
        set a = 0;
    end if;
    if b is null then
        set b = 0;
    end if;
    set @c = a + b;
    select @c as 'result';
end;;
delimiter ;                -- 创建完成后可以将结束符再修改回;

调用 MySQL 存储过程
例一、call pr_add(35, 97);  
例二(注意@符号)、
    set @a = 10;set @b = 20;
    call pr_add(@a, @b);

MySQL 存储过程结构
create procedure 存储过程名字() ( [in(默认)|out|inout] 参数 datatype ... )   
MySQL 语句;若有多行要在前加begin,末尾加end

MySQL 存储过程的一些需要注意的地方
1. MySQL 存储过程名字后面的括号必须要有,来管有没有参数
2. MySQL 存储过程的参数,不能在参数名称前加“@”,如:“@a int”
3. MySQL 存储过程的参数不能指定默认值
4. MySQL 中的procedure不可以简写成proc
5. MySQL 存储过程的每条语句的末尾,都要加上分号“;”
6. 若创建的 MySQL 存储过程中包含多条 MySQL 语句,则需要 begin end 关键字,并且如果结束符是";"的话,一定要记得用delimiter修改
8. MySQL 存储过程中没有 “return” 关键字
9. 调用 MySQL 存储过程时,存储过程名后的括号也是必须的
10. 调用 MySQL 存储过程时,任何参数都不可省略而不写

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值