DROP PROCEDUREでIF EXISTSをつけた場合のエラーレベルの違い

@iwasaki 48views 更新:2015年12月11日

IF EXISTSをつけない場合

DROP PROCEDURE sp_name

エラーコード

Error Code: 1305. PROCEDURE hoge.sp_name does not exist

IF EXISTSをつけた場合

DROP PROCEDURE IF EXISTS sp_name

エラーコード

0 row(s) affected, 1 warning(s): 1305 PROCEDURE org0000006.dummy_proc4 does not exist

warningになります。

IF EXISTS 句は MySQL 拡張です。これは、プロシージャーまたは関数が存在しない場合にエラーが発生しないようにします。SHOW WARNINGS で表示できる警告が生成されます。

https://dev.mysql.com/doc/refman/5.6/ja/drop-procedure.html より。

Errorではなく、WARNINGSになるので、Javaで実行したりすると、java.sql.BatchUpdateExceptionになります。

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません