ホームページ >データベース >mysql チュートリアル >MySQLでストアドプロシージャを閲覧する方法を紹介した記事

MySQLでストアドプロシージャを閲覧する方法を紹介した記事

PHPz
PHPzオリジナル
2023-04-19 14:11:43854ブラウズ

MySQL は、広く使用されているオープンソースのリレーショナル データベース管理システムです。他のデータベース管理システムと同様に、MySQL はストアド プロシージャの概念もサポートしており、ストアド プロシージャを通じて、一般的な操作とビジネス ロジック コードをモジュールにカプセル化し、必要に応じて直接呼び出すことができます。

しかし、実際の開発では、ビジネス規模の拡大に伴いストアドプロシージャの数も増加し、これらのストアドプロシージャをいかに効率的に管理し、素早く見つけ出すかが特に重要になります。この記事では、MySQL でストアド プロシージャを表示する方法を紹介しますので、お役に立てれば幸いです。

1. SHOW PROCEDURE STATUS コマンドを使用してストアド プロシージャを表示する

SHOW PROCEDURE STATUS コマンドを使用すると、MySQL データベース内のストアド プロシージャに関する関連情報を表示できます、ストアド プロシージャを含む、名前、作成時刻、変更時刻、ステータスなど。

Show PROCEDURE STATUS [LIKE 'pattern' | WHERE expr]
このうち、

patternはクエリ対象のストアドプロシージャ名のパターンを表し、exprはSQL式を表し、式の結果がtrueの場合のみ、クエリ結果が返されます。パラメータを指定しない場合は、すべてのストアド プロシージャに関する情報が返されます。

次にいくつかの例を示します。

すべてのストアド プロシージャをクエリする

SHOW PROCEDURE STATUS;

名前が

p_
SHOW PROCEDURE STATUS LIKE 'p_%';
## で始まるストアド プロシージャをクエリする#Query ステータスのストアド プロシージャ

{Create | Alter | Drop}

<pre class="brush:php;toolbar:false">SHOW PROCEDURE STATUS WHERE `status` IN ('Create', 'Alter', 'Drop');</pre>2. SHOW CREATE PROCEDURE コマンドを使用して、ストアド プロシージャの定義を表示します

特定のストアド プロシージャの定義を表示するには、ストアド プロシージャの定義を行うには、

SHOW CREATE PROCEDURE

コマンドを使用できます。このコマンドは、ストアド プロシージャ定義を含む SQL ステートメントを返します。 <pre class="brush:php;toolbar:false">SHOW CREATE PROCEDURE proc_name;</pre>このうち、

proc_name

は、クエリ対象のストアド プロシージャの名前を表します。 次に例を示します。

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 |
+-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

SHOW CREATE PROCEDURE

コマンドを使用すると、ストアド プロシージャの特定の実装をすばやく確認できます。ストアド プロシージャの定義。 3. INFORMATION_SCHEMA を使用してストアド プロシージャを表示する

INFORMATION_SCHEMA

は MySQL によってサポートされるメタデータ データベースであり、データベースの構造とステータスに関する大量の情報が含まれています。 。 INFORMATION_SCHEMA.Routines テーブルでは、MySQL データベースのすべてのストアド プロシージャをクエリできます。 <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>このうち、

ROUTINE_NAME

はストアド プロシージャ名を表し、ROUTINE_DEFINITION はストアド プロシージャ定義を表し、CREATED は作成時刻を表し、LAST_ALTERED は変更時刻を表します。 クエリの効率を向上させるために、クエリ ステートメントで特定のデータベース名を指定する必要があることに注意してください。すべてのデータベースにクエリを実行する場合は、

SPECIFIC_SCHEMA

フィールドを IS NOT NULL に変更します。 概要

上記の 3 つの方法により、MySQL のストアド プロシージャを簡単に表示および管理できます。

SHOW PROCEDURE STATUS

コマンドは基本的なストアド プロシージャ情報を提供し、SHOW CREATE PROCEDURE コマンドは特定のストアド プロシージャ定義を提供します。 INFORMATION_SCHEMA を使用すると、すべての MySQL データベースのストアド プロシージャをクエリできます。 実際の開発では、ストアドプロシージャの定義や情報を確認するだけでなく、ストアドプロシージャをすぐに使いこなせるよう、ストアドプロシージャの呼び出し方法やパラメータの受け渡しなどにも精通する必要があります。必要に応じてビジネス ロジックを完成させます。

以上がMySQLでストアドプロシージャを閲覧する方法を紹介した記事の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。