如何正确声明处理程序

How to properly declare handlers

我正在尝试将存储过程添加到 MySQL 方案。
我收到错误 ERROR: Error 1193: Unknown system variable 'inner_done'.
这是 code
我必须注意 重要的是最后声明哪个处理程序。它的名字会出错,而第一个声明的名字在某种程度上是可以的。我什至尝试使用 plece 来声明处理程序,例如创建一个新的 BEGIN-END 块,但错误仍然困扰着我,随机选择哪个 handfler 显示为 "unknown"

正如@RyanVincent 所说,错误描述 inner_done was not declare:

DECLARE done, inner_done BOOLEAN DEFAULT FALSE;

并将您的内部循环包裹在 BEGIN - END 块中。

编辑: declare handler 语句仅定义处理程序,因此在此之前需要变量的 declare 语句,将其值更改为条件。

DECLARE inner_done BOOLEAN DEFAULT FALSE;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET inner_done = TRUE;