6

次の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;

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

4

1 に答える 1

6

DECLAREs手順の最初の行に進む必要があります。

ドキュメントから:

DECLAREは、BEGIN ... END複合ステートメント内でのみ許可され、他のステートメントの前に開始する必要があります。

于 2011-02-22T20:32:16.633 に答える