Stored Procedure Frage
am 12.11.2007 18:37:49 von Stefan BraumeisterHallo NG,
ich hab eine Frage bezüglich einer Stored Procedure, folgende Procedure:
CREATE DEFINER=`root`@`localhost` PROCEDURE `DELETE_USER`(IN id INT)
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE usid INT;
DECLARE uscur CURSOR FOR SELECT us_id FROM usdb WHERE re_id = id;
OPEN uscur;
REPEAT
FETCH uscur INTO usid;
IF NOT done THEN
DELETE FROM userperms WHERE us_id = usid;
END IF;
UNTIL done END REPEAT;
CLOSE uscur;
DELETE FROM list WHERE us_id = id;
END
Mein Problem ist, wenn die Tabelle usdb leer ist dann gibt es nicht zu
löschen mit Delete. "Repeat" hat nichts zu tun und es sollte nur am
Schluss "DELETE FROM list WHERE us_id = id;" ausgeführt werden.
Rufe ich nun die Stored Procedure aus PHP auf, so bekomme ich den Fehler:
Error in CALL management.DELETE_USER(2): No data - zero rows fetched,
selected, or processed
Ist mir auch klar warum er meckert.
Gibts da jetzt ne Option in der Stored Procedure, damit er hier keinen
Fehler produziert und damit auch noch die Anweisungen danach ausführt(in
meinem Fall das Delete?
Grüße Stefan