Wie verwenden von goto label in MySQL gespeichert-Funktion
Möchte ich springen, in MySQL gespeicherte Funktion.
Wie kann ich das nutzen?
Beispiel-code:
if (action = 'D') then
if (rowcount > 0) then
DELETE FROM datatable WHERE id = 2;
else
SET p=CONCAT('Can not delete',@b);
goto ret_label;
end if;
end if;
Label: ret_label;
return 0;
InformationsquelleAutor SuSanda | 2012-06-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es GOTO-Fälle, die nicht umgesetzt werden in MySQL, wie ein Sprung rückwärts im code (und eine gute Sache, auch).
Aber für sowas wie dein Beispiel, wo Sie wollen, um zu springen aus der alles auf eine Letzte Serie von Anweisungen, die Sie erstellen können ein BEGIN /END-block umgibt den code, um zu springen aus:
Da Ihr code ist nur einige verschachtelte IFs, das Konstrukt ist unnötig in den angegebenen code. Aber es macht mehr Sinn, for-SCHLEIFE/WHILE/REPEAT, um zu vermeiden, mehrere RETURN-Anweisungen innerhalb einer Schleife und Konsolidierung der definitiven Verarbeitung (ein wenig wie TRY /FINALLY).
InformationsquelleAutor dkloke
Es gibt kein GOTO in MySQL Gespeicherte Prozeduren. Sie können sich auf diesen Beitrag:
MySQL :: Re: Goto-Anweisung
InformationsquelleAutor patrick choi