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

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になります。