2016-06-28 83 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