mysql存储过程执行报错问题解决方法

在MySQL中,分号用作命令结束标志,但在存储过程中可能包含多个分号。为了解决这个问题,可以使用`DELIMITER`命令改变语句结束符,比如改为`//`,然后在存储过程代码结束后恢复原设置。例如,`DELIMITER//`开始,然后编写存储过程,最后`END//`表示结束,再用`DELIMITER;`将分号设回为语句结束符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

存储过程分号处理办法

错误如下:

问题描述:
             mysql的命令行执行每一条命令是以分号结尾的,也就是说识别是否为一条命令,是根据分号决定的
      然而存储过程中设计多条语句,很可能出现多个分号,所以直接把存储过程复制到命令号一般都会失败
 

问题分析:
              出现这种问题的原因是在存储过程中要使用到分号但是,在mysql中分号代表的语句结束,这样我们的
      创建存储过程就会报错,所以我们可以使用一条语句将'//'作为mysql的语句结束符即可

解决方法:
             解决方法是需要加一个分隔符,让命令行知道整个存储过程的代码是完整的一块代码,代码如下
      DELIMITER //  表示以‘//’为结束符。当我们想要在切换回去时,只需'DELIMITER ;',即可
如下:

    delimiter //
 	create procedure p3(in p_in int)
 	begin
 	select p_in;
 	set p_in = 2;
 	select p_in;
 	select p_in;
 	end
 	// 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值