MySQL CREATE FUNCTION语法

Mel*_*Mel 45 mysql function

我想在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;
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

#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
Run Code Online (Sandbox Code Playgroud)

我在phpMyAdmin中运行此create语句.这个功能有什么问题?

jam*_*ond 78

你必须覆盖你的;分隔符,$$以避免这种错误.

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

这应该工作:

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 ;
Run Code Online (Sandbox Code Playgroud)

  • 是的,因为PHPMyAdmin非常棒.如果您打算使用函数/程序,我建议使用HeidiSQL. (3认同)

小智 23

MySQL创建函数语法:

DELIMITER //

CREATE FUNCTION GETFULLNAME(fname CHAR(250),lname CHAR(250))
    RETURNS CHAR(250)
    BEGIN
        DECLARE fullname CHAR(250);
        SET fullname=CONCAT(fname,' ',lname);
        RETURN fullname;
    END //

DELIMITER ;
Run Code Online (Sandbox Code Playgroud)

在查询中使用此函数

SELECT a.*,GETFULLNAME(a.fname,a.lname) FROM namedbtbl as a


SELECT GETFULLNAME("Biswarup","Adhikari") as myname;
Run Code Online (Sandbox Code Playgroud)

观看此视频如何创建mysql函数以及如何在查询中使用

创建Mysql函数视频教程