2011-09-13 10 views
20
CREATE PROCEDURE dorepeat(IN p1 INT) 
BEGIN 
    DECLARE x INT DEFAULT 0; 
    REPEAT SET x = x + 1; UNTIL x > p1 END REPEAT; 
END 

ottengo un errore di sintassi:errore di sintassi per la dichiarazione mysql di variabili

#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

Ma per me, tutto sembra essere corretto. davvero non ne ho idea qualcuno può aiutare?

grazie

+3

Devi accettare la risposta, perché è corretta. – Adrian

risposta

-2

Rimuovere il DECLARE, si dovrebbe essere in grado di fare proprio questo:

SET @x = 0; 

Inoltre, le variabili devono essere preceduto con il simbolo @

+0

Ho ancora esattamente lo stesso errore – moris

+1

Non correlato alla domanda, ma questo mi ha davvero aiutato. – redolent

+2

Questo creerà le variabili che sono visibili all'intera sessione, vuoi solo dichiararle come allora sono visibili solo all'interno della stored procedure. – skiwi

38

È necessario temporaneamente change the delimiter così il client MySQL non crede di aver terminato la frase quando vede il punto e virgola sulla riga 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 ; 
+0

funziona! molte grazie. – moris

Problemi correlati