SHOW CREATE FUNCTION ステートメントは、作成されたストアド関数の情報を表示するために使用します。
SHOW CREATE FUNCTION ステートメントの構文は次のとおりです:
SHOW CREATE FUNCTION func_name
このステートメントを使用するには、DEFINER が定義したユーザーであり、SHOW_ROUTINE 権限、グローバルレベルの SELECT 権限、またはそのルーチンに対する CREATE ROUTINE、ALTER ROUTINE、または EXECUTE 権限を持っている必要があります。CREATE ROUTINE、ALTER ROUTINE、または EXECUTE 権限のみを持つ場合、Create Procedure (プロシージャの作成) または Create Function (関数の作成) フィールドの値は NULL と表示されます。
SHOW CREATE FUNCTION は以下の情報を出力します:
Function:ストアド関数名。sql_mode:ストアド関数実行時に有効なSQLモード。Create Function:ストアド関数を定義するCREATE FUNCTIONステートメント。character_set_client:ストアド関数作成時のcharacter_set_clientシステム変数の現在のセッションでの値。collation_connection:ストアド関数作成時のcollation_connectionシステム変数の現在のセッションでの値。Database Collation:ストアド関数に関連付けられたデータベースの照合順序。
ストアド関数の情報は、INFORMATION_SCHEMA ROUTINES テーブルからも取得できます。詳細については、INFORMATION_SCHEMA PARAMETERSを参照してください。
SHOW CREATE FUNCTION ステートメントの例は以下のとおりです:
obclient> SHOW CREATE FUNCTION my_func;
+----------+----------+-----------------+-----------------------+----------------------+--------------------+
| Function | sql_mode | Create Function | character_set_client | collation_connection | Database Collation |
+----------+----------+-----------------+-----------------------+----------------------+--------------------+
| my_func | STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE | CREATE FUNCTION `test`.`my_func`( `c1` char(20)) RETURNS char(50) RETURN CONCAT('Thank ',c1,'!') | utf8mb4 | utf8mb4_general_ci | utf8mb4_general_ci |
+----------+----------+-----------------+-----------------------+----------------------+--------------------+
1 row in set