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

Posted 西红柿鸡蛋面

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql数据库执行存储过程问题相关的知识,希望对你有一定的参考价值。

今天在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数据库执行存储过程问题的主要内容,如果未能解决你的问题,请参考以下文章

MySQL存储过程执行需要很长时间

怎么在mysql中查询已建立的存储过程

MySQL 存储过程权限

mysql存储过程

[转]MYSQL 创建存储过程

mysql数据库存储过程