ストアドプロシージャーでループするとエラー
ストアドプロシージャーを空の行をつくるために、ループさせようとしていますが、エラーがでます。
#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
お礼
有難うございます。 SQLSTATEがコードでSQLERRMがメッセージですね。 『EXCEPTION』の下に複数の『WHEN』を切れるようですね。 EXCEPTION WHEN unique_violation THEN 処理 RETURN; WHEN others THEN 処理 RETURN;