我正在运行以下SQL查询:
Executing (default): DROP PROCEDURE IF EXISTS x;
DELIMITER $$
CREATE PROCEDURE x()
BEGIN
# do something
END $$
DELIMITER; $$就像这样:
sequelize.query(query, {
type: sequelize.QueryTypes.SELECT
});但是我得到了这个错误(即使它运行得很好,如果我使用任何其他SQL客户机):
SequelizeDatabaseError: ER_PARSE_ERROR:您的SQL语法出现了错误;检查与MySQL服务器版本对应的手册,以获得使用“划界器$$”附近的正确语法。 创建过程x() 开始
我已经将multipleStatements = true添加到我的连接配置中,但它什么也不做。
更新
我最终使用了RAW,如下所示:
sequelize.query(query, {
type: sequelize.QueryTypes.RAW
});发布于 2020-01-23 20:07:07
DELIMITER不是MySQL服务器的一部分,它是MySQL命令行客户机的一部分。此功能在驱动程序中不可用。
来源:https://github.com/mysqljs/mysql/issues/280#issuecomment-8081626
发布于 2018-02-21 00:18:51
您的错误实际上在最后一行。取出$$后的DELIMITER;语句:DELIMITER;在混淆语法分析器之后将分隔符重置为; $$。
https://stackoverflow.com/questions/30216396
复制相似问题