gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 06:34:37 24 4
gpt4 key购买 nike

尝试在 mysql 中创建存储过程时,我很难找到错误。

如果我独立运行该过程的每一行,一切都会很好。

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

我收到以下(有用的)错误:

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

我只是不知道从哪里开始调试,因为这些行中的每一行都是正确的。

你有什么建议吗?

最佳答案

由于第 3 行包含第一个 ;,可能您的分隔符有问题。

参见 http://dev.mysql.com/doc/refman/5.0/en/stored-programs-defining.html

DELIMITER //
CREATE PROCEDURE dorepeat(p1 INT)
BEGIN
SET @x = 0;
REPEAT SET @x = @x + 1; UNTIL @x > p1 END REPEAT;
END//
DELIMITER ;

关于mysql - 在 MySQL 中创建存储过程时出现 SQL 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/639089/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com