MySQL は、広く使用されているオープンソースのリレーショナル データベース管理システムです。他のデータベース管理システムと同様に、MySQL はストアド プロシージャの概念もサポートしており、ストアド プロシージャを通じて、一般的な操作とビジネス ロジック コードをモジュールにカプセル化し、必要に応じて直接呼び出すことができます。
しかし、実際の開発では、ビジネス規模の拡大に伴いストアドプロシージャの数も増加し、これらのストアドプロシージャをいかに効率的に管理し、素早く見つけ出すかが特に重要になります。この記事では、MySQL でストアド プロシージャを表示する方法を紹介しますので、お役に立てれば幸いです。
SHOW PROCEDURE STATUS コマンドを使用すると、MySQL データベース内のストアド プロシージャに関する関連情報を表示できます、ストアド プロシージャを含む、名前、作成時刻、変更時刻、ステータスなど。
Show PROCEDURE STATUS [LIKE 'pattern' | WHERE expr]
patternはクエリ対象のストアドプロシージャ名のパターンを表し、
exprはSQL式を表し、式の結果がtrueの場合のみ、クエリ結果が返されます。パラメータを指定しない場合は、すべてのストアド プロシージャに関する情報が返されます。
SHOW PROCEDURE STATUS;
SHOW PROCEDURE STATUS LIKE 'p_%';
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">SHOW PROCEDURE STATUS WHERE `status` IN ('Create', 'Alter', 'Drop');</pre><div class="contentsignin">ログイン後にコピー</div></div>
2. SHOW CREATE PROCEDURE コマンドを使用して、ストアド プロシージャの定義を表示します コマンドを使用できます。このコマンドは、ストアド プロシージャ定義を含む SQL ステートメントを返します。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">SHOW CREATE PROCEDURE proc_name;</pre><div class="contentsignin">ログイン後にコピー</div></div>
このうち、
は、クエリ対象のストアド プロシージャの名前を表します。 次に例を示します。
SHOW CREATE PROCEDURE `add_user`; -- 结果 +-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Procedure | Create Procedure | +-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | add_user | CREATE DEFINER=`root`@`localhost` PROCEDURE `add_user`(IN p_name VARCHAR(32), IN p_age INT, IN p_address VARCHAR(64)) BEGIN INSERT INTO `user`(`name`, `age`, `address`) VALUES (p_name, p_age, p_address); END | +-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
コマンドを使用すると、ストアド プロシージャの特定の実装をすばやく確認できます。ストアド プロシージャの定義。 3. INFORMATION_SCHEMA を使用してストアド プロシージャを表示する
は MySQL によってサポートされるメタデータ データベースであり、データベースの構造とステータスに関する大量の情報が含まれています。 。 INFORMATION_SCHEMA.Routines
テーブルでは、MySQL データベースのすべてのストアド プロシージャをクエリできます。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">SELECT `ROUTINE_NAME`, `ROUTINE_DEFINITION`, `CREATED`, `LAST_ALTERED`
FROM `INFORMATION_SCHEMA`.`ROUTINES`
WHERE `ROUTINE_TYPE` = 'PROCEDURE'
AND `SPECIFIC_SCHEMA` = 'your_db_name';</pre><div class="contentsignin">ログイン後にコピー</div></div>
このうち、
はストアド プロシージャ名を表し、ROUTINE_DEFINITION
はストアド プロシージャ定義を表し、CREATED
は作成時刻を表し、LAST_ALTERED
は変更時刻を表します。 クエリの効率を向上させるために、クエリ ステートメントで特定のデータベース名を指定する必要があることに注意してください。すべてのデータベースにクエリを実行する場合は、
フィールドを IS NOT NULL
に変更します。 概要
コマンドは基本的なストアド プロシージャ情報を提供し、SHOW CREATE PROCEDURE
コマンドは特定のストアド プロシージャ定義を提供します。 INFORMATION_SCHEMA
を使用すると、すべての MySQL データベースのストアド プロシージャをクエリできます。 実際の開発では、ストアドプロシージャの定義や情報を確認するだけでなく、ストアドプロシージャをすぐに使いこなせるよう、ストアドプロシージャの呼び出し方法やパラメータの受け渡しなどにも精通する必要があります。必要に応じてビジネス ロジックを完成させます。
以上がMySQLでストアドプロシージャを閲覧する方法を紹介した記事の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。