アプリ版:「スタンプのみでお礼する」機能のリリースについて

ストアドプロシージャーを空の行をつくるために、ループさせようとしていますが、エラーがでます。
#1313 - RETURN is only allowed in a FUNCTION




書いたソースです。
delimiter |

CREATE PROCEDURE looptest(OUT param1 INT)
begin
declare cnt int default 0;
declare result varchar(255) default seed;
lbl : loop
set cnt =cnt +1;
if cnt >= param1 then
leave lbl;
else
INSERT INTO `wp_base_posts` (`ID`, `post_author`, `post_date`, `post_date_gmt`, `post_content`, `post_title`, `post_excerpt`, `post_status`, `comment_status`, `ping_status`, `post_password`, `post_name`, `to_ping`, `pinged`, `post_modified`, `post_modified_gmt`, `post_content_filtered`, `post_parent`, `guid`, `menu_order`, `post_type`, `post_mime_type`, `comment_count`)
VALUES (NULL, '0', '0000-00-00 00:00:00', '0000-00-00 00:00:00', '', '', '', 'draft', 'open', 'open', '', '', '', '', '0000-00-00 00:00:00', '0000-00-00 00:00:00', '', '0', '', '0', 'page', '', '0');
end if;
end loop lbl;
return result;

END |

delimiter;
call looptest;

#1313 - RETURN is only allowed in a FUNCTION

A 回答 (1件)

私も自分でストアド書くときはヘルプ見ながらだし、英語も自信はありませんが



>#1313 - RETURN is only allowed in a FUNCTION
RETURN は FUNCTION の中でのみ許される、つまりストアドプロシージャでは使えないという意味だと思います。

RETURN を使わずに param1 には SET で値を設定すればいいことだと思いますよ。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!