mysql创建存储过程语法错误,在MySQL中创建存储过程时出现SQL语法错误

I have a hard time locating an error when trying to create a stored procedure in mysql.

If I run every single line of the procedure independently, everything works just fine.

CREATE PROCEDURE cms_proc_add_child

(

param_parent_id INT, param_name CHAR(255),

param_content_type CHAR(255)

)

BEGIN

SELECT @child_left := rgt FROM cms_tree WHERE id = param_parent_id;

UPDATE cms_tree SET rgt = rgt+2 WHERE rgt >= @child_left;

UPDATE cms_tree SET lft = lft+2 WHERE lft >= @child_left;

INSERT INTO cms_tree (name, lft, rgt, content_type) VALUES

(

param_name,

@child_left,

@child_left+1,

param_content_type

);

END

I get the following (helpful) error:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3

I just don't know where to start debugging, as every single one of these lines is correct.

Do you have any tips?

解决方案

As line 3 contains the first ; perhaps you have a problem with your delimiters.

DELIMITER //

CREATE PROCEDURE dorepeat(p1 INT)

BEGIN

SET @x = 0;

REPEAT SET @x = @x + 1; UNTIL @x > p1 END REPEAT;

END//

DELIMITER ;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值