码迷,mamicode.com
首页 > 数据库 > 详细

mysql数据库执行存储过程问题

时间:2018-01-27 21:17:32      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:sql语句   class   div   .com   sql数据库   end   一个   定义   执行存储过程   

今天在mysql数据库中执行一个存储过程,由于没有安装mysql数据连接工具,只好在黑框框里执行然后就遇到下面的问题:

技术分享图片

一直说是我的存储过程的语法有问题,但是看了好久都没有看出问题,后来查了一上午资料才发生问题所在:

在mysql中“;”会默认为是一句sql语句的结束,所以在使用source命令执行数据库脚本时,遇到“;”符号时,数据库会认为你一句sql语句写完了,他会自动执行这句,这时候就出问题了,要解决这个问题可以使用DELIMITER命令来自定义语句的结束标志,然后就可以顺利执行存储过程了。记得在存储过程最后把语句结束标志在改回来。

例:

-- ----------------------------
-- Procedure structure for `proc_adder`
-- ----------------------------
DROP PROCEDURE IF EXISTS `proc_adder`;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_adder`(IN a int, IN b int, OUT sum int)
BEGIN
    #Routine body goes here...

    DECLARE c int;
    if a is null then set a = 0; 
    end if;
  
    if b is null then set b = 0;
    end if;

    set sum  = a + b;
END
;;
DELIMITER ;

 

mysql数据库执行存储过程问题

标签:sql语句   class   div   .com   sql数据库   end   一个   定义   执行存储过程   

原文地址:https://www.cnblogs.com/qinshou/p/8367109.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!