创建存储函数时出现MySQL语法错误

时间:2017-02-20 15:25:36

标签: mysql phpmyadmin

我在MySQL中执行以下函数时遇到语法错误。

CREATE FUNCTION FABC (P_MEMBER_EMAIL VARCHAR(30))
RETURNS int 
BEGIN
DECLARE RESULT int;
DECLARE V_DATE DATE;
SELECT DOJ+365 INTO V_DATE FROM CHYK_MEMBER_MASTER
WHERE UPPER(MEMBER_EMAIL)=UPPER(P_MEMBER_EMAIL) AND SUBSCRIPTION='Y';
IF V_DATE>SYSDATE THEN
SET RESULT=1; 
ELSE
SET RESULT=0; 
END IF;
RETURN RESULT;
END;

错误如下"#1064 - 您的SQL语法出错;查看与您的MySQL服务器版本相对应的手册,以获得在''附近使用的正确语法。在第4行

不确定导致此问题的原因。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

您需要设置一个分隔符,告诉MySQL函数定义的结束。

DELIMITER $$
CREATE FUNCTION `FABC`(`P_MEMBER_EMAIL` VARCHAR(30)) RETURNS int(11)
BEGIN
DECLARE RESULT int;
DECLARE V_DATE DATE;
SELECT DOJ+365 INTO V_DATE FROM CHYK_MEMBER_MASTER
WHERE UPPER(MEMBER_EMAIL)=UPPER(P_MEMBER_EMAIL) AND SUBSCRIPTION='Y';
IF V_DATE>SYSDATE THEN
SET RESULT=1; 
ELSE
SET RESULT=0; 
END IF;
RETURN RESULT;
END$$
DELIMITER ;