[英]MySQL syntax for UPDATE with an IF conditional in a stored procedure?
我正在尝试运行存储过程但由于IF
条件而失败。我尝试过不同的方法仍然没有成功。 任何人都可以让我知道,如何在存储过程中使用IF条件。
DELIMITER $$
USE `testdb`$$
DROP PROCEDURE IF EXISTS `change_parent`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `change_parent`(
IN new_parent BIGINT(20),
IN folder__id BIGINT(20)
)
BEGIN
SELECT
directory_path,nav_depth,id
INTO
@dirpath,@depth,@parent
FROM folders
WHERE id = new_parent;
UPDATE folders
IF (folder__id != @parent) THEN
SET directory_path = CONCAT(@dirpath,'/',title),
nav_depth = @depth+1,
parent__id = @parent
END IF;
WHERE id = folder__id;
END$$
DELIMITER ;
这是错误消息
错误代码:1064您的SQL语法有错误; 检查与您的MySQL服务器版本对应的手册,以便在附近使用正确的语法:
'IF folder__id != @parent THEN SET directory_path = CONCAT(@dirpath,'/',title' at line 13
IF (folder__id != @parent) THEN
UPDATE folders
SET ...
WHERE id = folder__id;
END IF;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.