ここには、私が実際の目的のために作成している単純な関数があります。しかし、与えられたエラーを受け取ります。この単純な関数は何が間違っていますか?
DELIMITER $$
CREATE FUNCTION Weighted_Average(n1 INT, n2 INT, n3 INT, n4 INT)
RETURNS INT
DETERMINISTIC
BEGIN
DECLARE avg INT;
SET avg = (n1 + n2 + n3*2 + n4*4)/8;
RETURN avg;
END;
DELIMITER $$
エラーコード:1064。SQL構文にエラーがあります。正しい構文が 'n4 * 4)/ 8'の近くで使用されるようにMySQLサーバのバージョンに対応するマニュアルを確認してください。 RETURN avg;ライン6
でEND」私はこの記事にそれを比較しています:私はどこを取得していないのですながら経験を持つ
誰かが、おそらく私のミスを指摘することができます。私はエラーが私に見せてくれる場所が間違っているのを見ない。注:私はワークベンチを使用しています。
私はそれをテストし、正常に機能を作成します。エラーは再現できません。私は、あなたが環境やコードについて私たちに言っていないことがあると思います。 –
ちょうどメモ:あなたの2番目の 'DELIMITER'ステートメントは、デフォルトの'; 'に戻すことになっています。 –
区切り文を除いて、これはSQL Fiddle上でうまく動作します。http://www.sqlfiddle.com/#!9/4adc3c。 –