尝试在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
我得到以下(有用)错误:
错误1064(42000):您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以便在第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 ;