我有一个要通过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 ;
有人可以帮我解决这个问题吗? 谢谢