web-dev-qa-db-ja.com

変数のmysql宣言の構文エラー

CREATE PROCEDURE dorepeat(IN p1 INT)
BEGIN
  DECLARE x INT DEFAULT 0;
  REPEAT SET x = x + 1; UNTIL x > p1 END REPEAT;
END

構文エラーが発生します:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for > the right syntax to use near '' at line 3

しかし、私にとっては、すべてが正しいようです。本当に手がかりはない!誰か助けてもらえますか?

ありがとう

24
moris

一時的に 区切り文字を変更 する必要があるため、MySQLクライアントは、3行目にセミコロンが表示されても、ステートメントが完了したとは見なしません。

DELIMITER //

CREATE PROCEDURE dorepeat(IN p1 INT)
BEGIN
  DECLARE x INT DEFAULT 0;
  REPEAT SET x = x + 1; UNTIL x > p1 END REPEAT;
END//

DELIMITER ;
50
John Flatness