2016-06-28 4 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; DELIMITER $$ – 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

ありがとうございます、これはうまくいきました。エラーはあなたが指定した第3のポイントで、私がすでに与えた最初の2つのポイントでした – Amlan