2011-02-22 25 views
6

私は、次のMySQLのクエリを持っている:MySQLの構文エラー

DELIMITER // 
CREATE PROCEDURE InsertResult (IN winnerID INT, IN loserID INT) 
BEGIN 
    INSERT INTO KomperResult (WinnerID, LoserID) VALUES (@winnerID, @loserID); 
    DECLARE winnerScore, loserScore INT; 
    SELECT Score INTO @winnerScore FROM KomperPerson WHERE ID = @winnerID; 
    SELECT Score INTO @loserScore FROM KomperPerson WHERE ID = @loserID; 
    IF (@loserScore >= @winnerScore) THEN UPDATE KomperPerson SET Score = @loserScore + 1 WHERE ID = @winnerID; END IF; 
END// 

私は上のエラーを取得する:

DECLARE winnerScore, loserScore INT; 

私が間違って何をしているのですか?

答えて

5

DECLAREは、プロシージャの最初の行に移動する必要があります。 docsから

DECLAREのみ BEGINの内側に許可されている... END複合文と は、他の 文の前に、その先頭でなければなりません。

+0

ありがとう、私はそれを知らなかった。 – SuprDewd