You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MariaDB 10.5.10创建存储过程报ERROR 1064语法错误求助

错误原因
  • 语法报错的核心是CREATE DEFINER子句写法不符合MariaDB规范:用户名apple和主机标识%之间不能加多余空格,必须连写为apple@%格式。解析器读到错误的空格分隔后无法正常识别后续的存储过程参数定义,因此抛出near 'IN \numMonth` INT(1)'`的语法错误。
修正方案

删除DEFINER部分的多余空格即可,修正后的代码参考如下:

DROP PROCEDURE IF EXISTS `AA_SET_NUMBER`;

DELIMITER $$ 
CREATE DEFINER = `apple`@`%` PROCEDURE `AA_SET_NUMBER`(IN `numMonth` INT(1)) 
BEGIN 
    SET @strKey = ' WHERE `cd`.`KEY` = \'DELM\'';
    IF numMonth IS NULL THEN 
        SET @strMonth = ' AND MONTH(`c`.`CREATED_ON`) = MONTH(CURRENT_DATE())';
    ELSE 
        SET @strMonth = CONCAT(' AND MONTH(`c`.`CREATED_ON`) = \'', numMonth, '\' ');
    END IF;
    -- 补充原有存储过程的剩余逻辑
END $$
DELIMITER ;

内容的提问来源于stack exchange,提问作者sandy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 11:36:05