sto imparando stored procedure, cursori in MySQL e ho inciampare su di esso:fetch restituisce NULL
delimiter //
CREATE PROCEDURE some_func()
BEGIN
DECLARE link_rewrite VARCHAR(255);
DECLARE link_rewrite_cursor CURSOR FOR SELECT link_rewrite FROM prod;
OPEN link_rewrite_cursor;
SET @count = 0;
WHILE @count < 10 DO
FETCH link_rewrite_cursor INTO link_rewrite;
SELECT link_rewrite;
set @count = @count + 1;
END WHILE;
CLOSE link_rewrite_cursor;
END//
delimiter ;
La mia domanda è: perché SELEZIONA link_rewrite restituisce sempre NULL (nella tabella prod c'è 9000 righe). SELECT link_rewrite FROM prod restituisce un sacco di righe (9000 righe).
'SET' non lo dichiara? –
@Eric Fa in modo che la selezione restituisca qualcosa (in questo caso NULL), quindi secondo me colpisce durante il ciclo. Sì, potresti farlo molto più velocemente ma sto cercando di imparare i cursori e la stored procedure. – PaulP
@PaulP, cosa significa 'selezionare link_rewrite da prod limit 10'? Se questo è il caso, allora suppongo che tu abbia valori 'nulli' nella tabella (indipendentemente da quante righe hai). – Eric