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

MySQL自定义函数报错:位置无效预期标识符,求问题排查

问题原因及修正方案

核心报错原因

你遇到的'as is not valid at this position, expecting an identifier'错误,直接原因是MySQL自定义函数语法中不需要as关键字,你在returns double后添加的as属于无效语法,导致解析报错。

除此之外,代码还有另外几个语法问题:

  • 未修改语句分隔符:MySQL默认以;作为语句结束符,函数定义内部的;会提前终止函数创建,必须先临时修改分隔符。
  • 变量赋值方式错误:混淆了会话变量(@开头)和局部变量的赋值逻辑,且表名拼写错误(coampanies应为companies)。
  • return语句缺少分号:MySQL要求语句必须以;结尾。

修正后的完整代码

DELIMITER //
CREATE FUNCTION world.function1()
RETURNS double
BEGIN
    DECLARE averagesalary1 double;
    SELECT AVG(averagesalary) INTO averagesalary1 FROM companies;
    RETURN averagesalary1;
END //
DELIMITER ;

关键修正点说明

  • 移除多余的as关键字,符合MySQL函数定义的标准语法。
  • 添加DELIMITER //临时修改分隔符,避免函数内部的;中断创建流程,最后改回默认分隔符。
  • 使用SELECT ... INTO ...语法给局部变量averagesalary1赋值,替代错误的@averagesalary1=avg(...)写法。
  • 修正表名拼写错误,给return语句添加分号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 16:25:38