我想在MySQL存储功能使用goto语句。 如何使用? 示例代码:
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;
有不能在MySQL中实现,就像在代码向后跳GOTO例(和一件好事,太)。
但要跳出一切到最后的一系列语句像你的榜样,你可以创建围绕码跳出的BEGIN / END块:
aBlock:BEGIN
if (action = 'D') then
if (rowcount > 0) then
DELETE FROM datatable WHERE id = 2;
else
SET p=CONCAT('Can not delete',@b);
LEAVE aBlock;
end if;
end if;
END aBlock;
return 0;
因为你的代码只是一些嵌套的IF,该结构是在给定的代码不必要的。 但它使LOOP / WHILE / REPEAT更有意义,以避免从一个循环内的多个return语句,并巩固最终处理(有点像TRY / FINALLY)。
有在MySQL存储的特效没有GOTO。 你可以参考这篇文章: MySQL的::回复:goto语句