2

我正在运行一个存储过程,并且遇到了以下行的问题:

SELECT photo_data_id 
  INTO gallery_rel_id_check 
  FROM photo_data 
 WHERE object_type = 4 
   AND data_id = 0 
   AND photo_id = row_photo_id LIMIT 1;

在某些情况下,此查询将返回 0 行,因此 gallery_rel_id_check 不会获得分配给它的值。

出于某种奇怪的原因,这似乎停止了存储过程。我是否应该以不同的方式分配gallery_rel_id_check,因为我需要稍后在程序中使用它来检查它是否> 0

谢谢

4

2 回答 2

0

如果查询不返回任何行,您可以声明一个 continue 处理程序以将 gallery_rel_id_check 显式设置为适当的值。

例如:

DECLARE CONTINUE HANDLER FOR NOT FOUND SET gallery_rel_id_check = -1;
于 2012-04-25T14:11:56.550 回答
0

归功于@Paolo Bergantino

只需使用:

SET gallery_rel_id_check = (SELECT...);

于 2012-05-03T08:44:09.653 回答