Flyway生成MySQL语法错误,而原始脚本不生成

Flyway生成MySQL语法错误,而原始脚本不生成,mysql,flyway,Mysql,Flyway,对于下面的MySql脚本,Flyway在直接以类似Navicat的方式运行脚本时会产生MySql语法错误。有人能告诉我为什么吗 CREATE PROCEDURE RegressionTest_Genealogy (OUT Success TINYINT) BEGIN DECLARE MetricVerification TINYINT; SET Success = 0; SELECT COUNT(MERTRICID) INTO MetricVerification

对于下面的MySql脚本,Flyway在直接以类似Navicat的方式运行脚本时会产生MySql语法错误。有人能告诉我为什么吗

CREATE PROCEDURE RegressionTest_Genealogy (OUT Success TINYINT)
BEGIN  
    DECLARE MetricVerification TINYINT;
    SET Success = 0;

    SELECT COUNT(MERTRICID) INTO MetricVerification FROM metrics_temp WHERE lft = 0 OR rgt = 0;

    IF MetricVerification = 0 THEN
        SET Success = 1;
    END IF;
END

您可能需要首先发出一个分隔符更改以使其生效,根据默认值,分隔符为;它包含在您的过程正文中。

请尝试此操作

DELIMITER //
CREATE PROCEDURE RegressionTest_Genealogy (OUT Success TINYINT)
BEGIN  
DECLARE MetricVerification TINYINT;

SET Success = 0;

SELECT COUNT(MERTRICID) INTO MetricVerification FROM metrics_temp WHERE lft = 0 OR rgt = 0;

IF MetricVerification = 0 THEN
    SET Success = 1;
END IF;
END //
DELIMITER ;

别忘了分享你的错误。