SuS*_*nda 5 mysql goto stored-functions
我想在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;
Run Code Online (Sandbox Code Playgroud)
有一些GOTO案例无法在MySQL中实现,比如在代码中向后跳转(也是一件好事).
但是对于像你的例子那样想要跳出所有内容到最后一系列语句的东西,你可以在代码周围创建一个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;
Run Code Online (Sandbox Code Playgroud)
由于您的代码只是一些嵌套的IF,因此在给定代码中不需要该构造.但是对于LOOP/WHILE/REPEAT更有意义的是避免循环内的多个RETURN语句并合并最终处理(有点像TRY/FINALLY).
| 归档时间: |
|
| 查看次数: |
15744 次 |
| 最近记录: |