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