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

クレジットは@PaoloBergantinoに送られます

使用するだけです:

SET gallery_rel_id_check =(SELECT ...);

于 2012-05-03T08:44:09.653 に答える
0

クエリが行を返さない場合は、continueハンドラーを宣言して、gallery_rel_id_checkを適切な値に明示的に設定できます。

例えば:

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