谁能看到我为什么会得到:
[Err] 1064 - 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 '//
DELIMITER' at line 11
对于以下代码段:
DELIMITER //
DROP PROCEDURE
IF EXISTS nested_test//
CREATE PROCEDURE nested_test()
BEGIN
DECLARE a INT;
SET a = 1;
SELECT a;
BEGIN
DECLARE b INT;
SET b = 2;
SELECT b;
END;
END//
DELIMITER;
这是我实际上在写的简化版本,它提出了完全相同的错误。在添加嵌套的BEGIN END块之前,一切都很好。它在phpMyAdmin上运行良好,但在Navicat 9上运行失败
最佳答案
DELIMITER
后应有一个空格。
DELIMITER ;
像那样。
DELIMITER //
DROP PROCEDURE
IF EXISTS nested_test//
CREATE PROCEDURE nested_test()
BEGIN
DECLARE a INT;
SET a = 1;
SELECT a;
BEGIN
DECLARE b INT;
SET b = 2;
SELECT b;
END;
END //
DELIMITER ;
执行后,它将生成:
受影响0行,找到0行。 2个查询的持续时间:0.000秒。
关于mysql - MySQL嵌套块错误1064,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15583332/