【问题标题】:"No Return Found" error in simple mysql function简单 mysql 函数中的“未找到返回”错误
【发布时间】:2020-03-24 05:19:37
【问题描述】:

我正在使用 xampp 和 phpMyAdmin 来管理 MySql 数据库。 创建函数时出现“未找到返回”错误,因此我剥离了函数以缩小错误的根源,但最简单的情况仍然无法正常工作。

错误信息是这样的:

显然,如果 RETURN 语句不是代码中唯一的内容,我会收到错误。

【问题讨论】:

  • definitionBEGIN 开头并以END 结尾怎么样?
  • @Cid 是的,我意识到了这一点。出于某种原因,我认为 phpMyAdmin 会自动执行此操作
  • PHPMyAdmin 的例程生成器有点问题,因为它要求您构建所需的代码输入,与您自己从头开始编写 SQL 时不同。
  • 试试这个:Defeinition: "BEGIN SET @c = 0; RETURN @c; END"

标签: mysql phpmyadmin mysql-function


【解决方案1】:

假设对 MySQL 执行的实际代码是:

CREATE FUNCTION `Contagem`() RETURNS INT(11)
SET @c = 0;
RETURN @c;

这将失败,因为您没有将函数包装在 BEGIN...END 中。

试着把它写成你的函数声明:

BEGIN
    SET @c = 0;
    RETURN @c;
END;

或者,直接在 MySQL 中自己声明函数:

DELIMITER $$

CREATE FUNCTION `Contagem`() RETURNS INT(11)
BEGIN
    SET @c = 0;
    RETURN @c;
END $$

DELIMITER ;

【讨论】:

  • 完全正确。错误消息显示正在执行的代码没有开始和结束。
【解决方案2】:

在查看这篇文章时,我更仔细地阅读了错误消息,我意识到定义函数的 MySql 代码中没有 BEGINEND

我假设在输入多行函数代码时,phpMyAdmin 会知道如何处理它,因为代码文本框支持多行代码。

所以,将BEGIN 放在代码的开头,END 放在代码的末尾解决了我的问题。

【讨论】:

  • 我最好的建议是自己输入CREATE FUNCTION 语句
猜你喜欢
  • 2021-05-04
  • 1970-01-01
  • 1970-01-01
  • 2020-06-29
  • 2014-08-29
  • 1970-01-01
  • 1970-01-01
  • 2020-07-29
  • 2022-07-17
相关资源
最近更新 更多