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