在创建函数时出现语法错误

时间:2018-09-28 14:26:39

标签: mysql sql

我正在尝试创建如下函数:

CREATE FUNCTION TitleToFileName(title varchar(200)) RETURNS varchar(200)
  BEGIN
    set title = REPLACE(title,":"," ");
    set title=REPLACE(title,"/"," ");
    set title=REPLACE(title,"_"," ");
    RETURN title;
  END

MySQL显示错误:

  

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本以使用正确的语法   在第3行的“”附近

我尝试使用'代替“和@title代替title,但是没有用。.

1 个答案:

答案 0 :(得分:2)

  • 您需要将Delimiter重新定义为其他名称(例如:$$),而不是({;)。
  • 作为安全措施,请检查是否已经存在相同名称的功能(DROP FUNCTION IF EXISTS
  • 最后,将DELIMITER重新定义为;

尝试:

DELIMITER $$
DROP FUNCTION IF EXISTS `TitleToFileName`$$
CREATE FUNCTION TitleToFileName(title varchar(200)) RETURNS varchar(200)
  BEGIN
    set title = REPLACE(title,":"," ");
    set title=REPLACE(title,"/"," ");
    set title=REPLACE(title,"_"," ");
    RETURN title;
  END $$
DELIMITER ;