小编典典

MySQL CREATE FUNCTION语法

mysql

我正在尝试在MySQL中创建一个函数:

这是SQL代码:

CREATE FUNCTION F_Dist3D (x1 decimal, y1 decimal) 
RETURNS decimal
DETERMINISTIC
BEGIN 
 DECLARE dist decimal;
 SET dist = SQRT(x1 - y1);
 RETURN dist;
END;

我收到以下错误:

#1064 - You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL 
server version for the right syntax to use near '' at line 10

我正在phpMyAdmin中运行此create语句。此功能有什么问题?


阅读 651

收藏
2020-05-17

共1个答案

小编典典

您必须;使用类似的方法来覆盖定界符,$$以避免此类错误。

在定义函数之后,可以将定界符设置回;

这应该工作:

DELIMITER $$
CREATE FUNCTION F_Dist3D (x1 decimal, y1 decimal) 
RETURNS decimal
DETERMINISTIC
BEGIN 
  DECLARE dist decimal;
  SET dist = SQRT(x1 - y1);
  RETURN dist;
END$$
DELIMITER ;
2020-05-17