通过nodejs执行存储过程创建语句?

时间:2019-12-17 06:02:05

标签: mysql node.js amazon-s3 aws-lambda

我有一个要通过lambda nodejs创建存储过程的要求。我正在通过s3中的SQL文件获取该过程。我尝试将其作为简单的查询语句执行,但出现错误 MySQL syntax is not valid please check the syntax. 但是,当我在控制台上打印它并在mysql工作台中运行它时,它工作正常。 SQL文件内容:

DELIMITER $$
CREATE PROCEDURE `db`.`sp`(IN id int, IN date DATE, IN periods int, IN frequency varchar(20) )
BEGIN

    set @i = 0;
    set @dateSeq = date;
    set @period =  DATE_FORMAT(@dateSeq, '%Y-%m');
    WHILE @i <= periods DO
        INSERT INTO `table`(`id`,`date`,`data1`,`period`) VALUES (id, @dateSeq, 0, @period);
        SET @i = @i + 1;

        -- comment
        IF frequency = 'string1' THEN
            set @dateSeq = DATE_ADD(@dateSeq, INTERVAL 1 MONTH);
            set @period =  DATE_FORMAT(@dateSeq, '%Y-%m');
        end if;

        IF frequency = 'string2' THEN
            set @dateSeq = LAST_DAY(DATE_ADD(@dateSeq, INTERVAL 1 MONTH));
            set @period =  DATE_FORMAT(@dateSeq, '%Y-%m');
        end if;

        IF frequency = 'string2' THEN
            set @dateSeq = LAST_DAY(DATE_ADD(@dateSeq, INTERVAL 1 DAY));
            set @period =  DATE_FORMAT(@dateSeq, '%Y-%m');
        end if;

    END WHILE;
END$$
DELIMITER ;

有人可以帮我解决这个问题吗? 谢谢

0 个答案:

没有答案