MySQL Workbench/phpMyAdmin/MySQLクライアントツールでストアドプロシージャの定義を確認する方法
MySQLでストアドプロシージャの定義を表示する方法
SHOW CREATE PROCEDURE ステートメントを使用する
SHOW CREATE PROCEDUREステートメントは、指定されたストアドプロシージャの定義を返すMySQL拡張機能です。このステートメントを使用するには、以下のいずれかの条件を満たす必要があります。
- ルーチンのDEFINERとして指定されたユーザーである
- SHOW_ROUTINE権限を持つ
- グローバルレベルでSELECT権限を持つ
- ルーチンを含むスコープでCREATE ROUTINE、ALTER ROUTINE、またはEXECUTE権限が付与されている
SHOW CREATE PROCEDUREステートメントの構文は次のとおりです。
SHOW CREATE PROCEDURE [データベース名].[プロシージャ名]
例:
SHOW CREATE PROCEDURE mydatabase.myprocedure;
このステートメントを実行すると、ストアドプロシージャの定義が次の形式で出力されます。
CREATE PROCEDURE mydatabase.myprocedure (
parameter1 datatype,
parameter2 datatype
)
BEGIN
-- プロシージャ本体
END;
information_schema.ROUTINES テーブルを使用する
information_schema.ROUTINESテーブルは、MySQLデータベース内のすべてのストアドプロシージャとファンクションに関する情報を格納しています。このテーブルを使用して、ストアドプロシージャの定義を含むさまざまな情報にアクセスできます。
information_schema.ROUTINESテーブルからストアドプロシージャの定義を取得するには、次のクエリを使用できます。
SELECT ROUTINE_DEFINITION
FROM information_schema.ROUTINES
WHERE ROUTINE_NAME = 'プロシージャ名'
AND ROUTINE_TYPE = 'PROCEDURE'
AND ROUTINE_SCHEMA = 'データベース名';
SELECT ROUTINE_DEFINITION
FROM information_schema.ROUTINES
WHERE ROUTINE_NAME = 'myprocedure'
AND ROUTINE_TYPE = 'PROCEDURE'
AND ROUTINE_SCHEMA = 'mydatabase';
CREATE PROCEDURE mydatabase.myprocedure (
parameter1 datatype,
parameter2 datatype
)
BEGIN
-- プロシージャ本体
END;
- 上記のいずれの方法を使用しても、ストアドプロシージャのソースコードのみが表示されます。コンパイルされたコードは表示されません。
- ストアドプロシージャの定義を変更するには、ALTER PROCEDUREステートメントを使用する必要があります。
-- 仮想データベース 'mydatabase' に存在する 'myprocedure' という名前のストアドプロシージャの定義を表示します。
SHOW CREATE PROCEDURE mydatabase.myprocedure;
-- 仮想データベース 'mydatabase' に存在する 'myprocedure' という名前のストアドプロシージャの定義を表示します。
SELECT ROUTINE_DEFINITION
FROM information_schema.ROUTINES
WHERE ROUTINE_NAME = 'myprocedure'
AND ROUTINE_TYPE = 'PROCEDURE'
AND ROUTINE_SCHEMA = 'mydatabase';
- 実際のストアドプロシージャの名前とデータベース名を置き換えてください。
MySQL Workbench は、グラフィカルユーザーインターフェース (GUI) を備えた MySQL 管理ツールです。このツールを使用して、ストアドプロシージャを含むデータベースオブジェクトを簡単に表示および編集できます。
MySQL Workbench でストアドプロシージャの定義を表示するには、次の手順を実行します。
- MySQL Workbench を起動し、データベースに接続します。
- ナビゲーター ペインで、ストアドルーチン を展開します。
- 表示したいストアドプロシージャを右クリックし、表示 > 定義 を選択します。
phpMyAdmin を使用する
phpMyAdmin は、Web ブラウザベースの MySQL 管理ツールです。このツールを使用して、ストアドプロシージャを含むデータベースオブジェクトを簡単に表示および編集できます。
- phpMyAdmin に Web ブラウザでアクセスし、データベースにログインします。
- 左側のメニューで SQL タブをクリックします。
- 次のクエリを SQL クエリ ペインに入力して 実行 をクリックします。
SHOW CREATE PROCEDURE [データベース名].[プロシージャ名];
- クエリの実行結果に、ストアドプロシージャの定義が表示されます。
MySQL クライアントツールを使用する
注:
- 上記の方法は、いずれも MySQL 5.0以降で動作します。
- 使用するツールによって、必要な手順や表示される情報が異なる場合があります。
sql mysql database