MySQL存储过程中使用游标和临时表:
这里值得注意的是DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1
在游标循环中我们使用done是否为0来作为判断是否退出循环的标准,在普通插入语句中没有问题
但是一旦在游标中使用select语句查找出来的东西为null时会触发Handler,done会从0变为1
因此游标中有select语句的可以使用应使用其他方式,例如while循环等,下面是个利用判断结果集长度退出while循环的例子
MySQL存储过程中使用游标和临时表:
这里值得注意的是DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1
在游标循环中我们使用done是否为0来作为判断是否退出循环的标准,在普通插入语句中没有问题
但是一旦在游标中使用select语句查找出来的东西为null时会触发Handler,done会从0变为1
因此游标中有select语句的可以使用应使用其他方式,例如while循环等,下面是个利用判断结果集长度退出while循环的例子