2016-06-28 3 views
-2

Я пытаюсь создать в MySQL функцию ниже, но получить синтаксическую ошибку. Я не в состоянии найти решение, был бы признателен за некоторую помощьMySQL Функция получения Синтаксическая ошибка

CREATE FUNCTION `test`.`pro`(depart_id int) RETURNS varchar 

BEGIN 
    DECLARE title varchar; 

if depart_id = 1 then 
    set title='IT Department'; 

else if depart_id = 2 then 
    set title='HR Department'; 

else 
    set title='Admin'; 
end if; 

return title; 


END$$ 

DELIMITER ; 
+0

Что ваша ошибка синтаксиса? – Blank

+0

'varchar' нуждается в длине –

+0

@ 10086 Это ошибка, которую я получил« У вас есть ошибка в синтаксисе SQL, проверьте руководство, соответствующее версии сервера MariaDB, для правильного синтаксиса для использования рядом с «BEGIN DECLARE title varchar; если depart_id = 1, то набора»в строке 3" – Amlan

ответ

2

У вас есть несколько синтаксических ошибок в вашем скрипте:

  • varchar должны иметь длину
  • Вы должны определить DELIMITER $$ начато
  • не else if, но elseif

Попробуйте это;)

DELIMITER $$ 

CREATE FUNCTION `test`.`pro`(depart_id int) RETURNS varchar(10) 

BEGIN 
    DECLARE title varchar(10); 

if depart_id = 1 then 
    set title='IT Department'; 

elseif depart_id = 2 then 
    set title='HR Department'; 

else 
    set title='Admin'; 
end if; 

return title; 

END $$ 

DELIMITER ; 
+0

Спасибо, это сработало, ошибка была третьей точкой, которую вы указали, первые две точки, которые я уже дал – Amlan

Смежные вопросы