Developer

【SQL基礎】ストアドファンクションの削除、更新
2022.01.13
Lv1

【SQL基礎】ストアドファンクションの削除、更新

本記事ではストアドファンクションの削除と更新について扱います。

ストアドファンクションはストアドルーチンの一種です。

ストアドルーチンについてはこちらの記事をご覧ください。

ストアドファンクションとセットで扱われることの多い「ストアドプロシージャ」についてはこちらの記事をご覧ください。

ストアドファンクションの登録についてはこちらの記事をご覧ください。

ストアドファンクションの実行についてはこちらの記事をご覧ください。


ストアドファンクションの削除

ストアドファンクションの基本構文は以下のとおりです。

DROP FUNCTION ファンクション名;

例としてこちらの記事で作成した”TEST1″というファンクションを削除してみましょう。

まずは”TEST1″というファンクションが存在することを確認するために、以下のSQLを実行して登録済みファンクションの一覧を表示します。

SELECT ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE
FROM information_schema.ROUTINES
WHERE ROUTINE_TYPE = 'FUNCTION';

確認できたので削除します。

DROP FUNCTION TEST1;

もう一度ファンクション一覧を表示すると、削除できたことが確認できます。


ストアドファンクションの更新

ストアドファンクションの引数や戻り値、処理内容を変更したい場合は一旦ファンクションを削除して再作成する必要があります。

ファンクションを更新したいときは前述のDROP FUNCTION構文とCREATE FUNCTION構文を使って再作成しましょう。

ALTER FUNCTIONという構文がありますが、これはファンクションの特性を変更するためのものであり、ファンクションの内容を変更することはできません。


学習のポイント

・DROP FUNCTIONでストアドファンクションを削除できる。

・ストアドファンクションを更新する際にはファンクションの再作成をする。


練習問題

問、次のSQLを実行したらエラーが出ました。なぜでしょうか。

DROP FUNCTION TEST1();

 

答え

ファンクション名のあとに()が付いているから。

DROP FUNCTION構文ではファンクション名だけを指定します。引数に関する()を記述してしまうとエラーが出ます。実行のときの癖で()を付けないよう気を付けましょう。

以下は実行例です。


連載目次リンク

SQL基礎 連載目次

関連する連載リンク

SQL練習問題 一覧まとめ