получение синтаксической ошибки при создании функции - PullRequest
0 голосов
/ 28 сентября 2018

Я пытаюсь создать функцию, подобную следующей:

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 вместо заголовка, но не работал..

1 Ответ

0 голосов
/ 28 сентября 2018
  • Вам необходимо переопределить разделитель на что-то другое (например, $$) вместо (;).
  • Также в качестве меры безопасности проверьте, существует ли уже такая же функция имениили нет (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 ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...