无法创建此 MySQL UDF
Posted
技术标签:
【中文标题】无法创建此 MySQL UDF【英文标题】:Can't get this MySQL UDF to Create 【发布时间】: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 子句后加分号 有帮助,谢谢! 【参考方案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 ;
谢谢!
【讨论】:
以上是关于无法创建此 MySQL UDF的主要内容,如果未能解决你的问题,请参考以下文章
mysql udf 错误 - 无法在 ubuntu 12.04 64 位中安装