函数与存储过程创建时候的问题

1.创建的函数无法保存

eg:

DROP FUNCTION IF EXISTS `insert_note`;

CREATE DEFINER = `root`@`localhost` FUNCTION `insert_note`(`my_id` varchar(50),`my_title` varchar(50),`my_content` varchar(255))
 RETURNS varchar
BEGIN
INSERT INTO note VALUES(my_id,my_title,my_content);
RETURN LAST_INSERT_ID();

END;

保存时提示:



这个主要是因为:创建时候没有指定入参与返回参数的大小,指定好就可以啦,可以直接在查询窗口通过select操作



2.存储函数无法调用,或无法查出查返回值

DROP PROCEDURE IF EXISTS `test_pro`;
CREATE DEFINER = `root`@`localhost` PROCEDURE `test_pro`(IN `a` int,IN `b` int,OUT `c` int,OUT `d` int)
BEGIN
SELECT a+b, a-b INTO c,d from dual;

END;

调用时,OUT参数必须用变量传入

call test_pro(3,4,@c,@d);

然后通过

select @c,@d;  查询对应数值;变量值仅在当前会话可查,即使保存查询然后关闭再打开也还是查不出

注:存储过程对变量复值 := 与 = 的区别

set 赋值时两种方式都可以   set @a = 1; set @a := 1;

:= 主要用于selcet    select @c:=a+b



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值