【问题标题】:Can't get this MySQL UDF to Create无法创建此 MySQL UDF
【发布时间】:2015-04-22 10:02:41
【问题描述】:

我在尝试创建此函数时收到了各种错误代码,最近的一个是:“1064 - 您的 SQL 语法有错误;请查看与您的 MariaDB 服务器版本相对应的手册以获取正确信息在第 2 行的 '' 附近使用的语法"

CREATE FUNCTION DebtOwed(SearchEmail Varchar(70))
RETURNS FLOAT(10,2);
BEGIN
  DECLARE Total Float(10,2);
  SELECT Sum(Amount) INTO Total
  FROM tblFinances
  WHERE email=SearchEmail AND Paid=False ;
  RETURN Total;
END;

关于我做错了什么的任何线索?

【问题讨论】:

  • 不确定是否应该在 RETURNS 子句后加分号
  • 有帮助,谢谢!

标签: mysql mysql-udf


【解决方案1】:

您需要在函数定义期间设置不同的分隔符。

所以是这样的:

DELIMITER $$

CREATE FUNCTION DebtOwed(SearchEmail Varchar(70))
RETURNS FLOAT(10,2)
BEGIN
  DECLARE Total Float(10,2);
  SELECT Sum(Amount) INTO Total
  FROM tblFinances
  WHERE email=SearchEmail AND Paid=False ;
  RETURN Total;
END$$

DELIMITER ;

【讨论】:

    【解决方案2】:

    解决方案是需要不同的分隔符并删除 ;返回后 FLOAT(10,2)

    DELIMITER $$
    CREATE FUNCTION DebtOwed(SearchEmail Varchar(70))
    RETURNS FLOAT(10,2)
    BEGIN
      DECLARE Total Float(10,2);
      SELECT Sum(Amount) INTO Total
      FROM tblFinances
      WHERE email=SearchEmail AND Paid=False ;
      RETURN Total;
    END$$
    DELIMITER ;
    

    谢谢!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-19
      • 2020-11-22
      • 2011-09-25
      • 2016-03-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多