MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLで特定のデータベースのストアドプロシージャとストアド関数の一覧を確認する方法

INFORMATION_SCHEMA.ROUTINESを使った一覧の確認方法

MySQLでは、INFORMATION_SCHEMA.ROUTINESテーブルに対してSELECT文を実行することで、特定のデータベースに登録されているストアドプロシージャやストアド関数の一覧を簡単に確認できます。

mysql> SELECT ROUTINE_TYPE, ROUTINE_NAME FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_SCHEMA = 'query';
+--------------+--------------+
| ROUTINE_TYPE | ROUTINE_NAME |
+--------------+--------------+
| PROCEDURE    | allrecords   |
| FUNCTION     | Hello        |
+--------------+--------------+
2 rows in set (0.04 sec)

上記のクエリを実行すると、データベース「query」に保存されているストアドプロシージャ「allrecords」と、ストアド関数「Hello」が結果として返されます。ROUTINE_TYPE列には、そのルーチンがプロシージャ(PROCEDURE)であるか関数(FUNCTION)であるかが表示されるため、種類を見分けながら一覧を把握することが可能です。

プロシージャまたは関数だけを抽出する

WHERE句にROUTINE_TYPEの条件を追加すれば、必要な種類だけを絞り込んで表示することもできます。

-- ストアドプロシージャのみを取得
mysql> SELECT ROUTINE_NAME FROM INFORMATION_SCHEMA.ROUTINES
    -> WHERE ROUTINE_SCHEMA = 'query' AND ROUTINE_TYPE = 'PROCEDURE';

-- ストアド関数のみを取得
mysql> SELECT ROUTINE_NAME FROM INFORMATION_SCHEMA.ROUTINES
    -> WHERE ROUTINE_SCHEMA = 'query' AND ROUTINE_TYPE = 'FUNCTION';

SHOWステートメントを使う代替手段

INFORMATION_SCHEMAを直接参照する代わりに、以下のSHOWステートメントでも同様の情報を取得できます。

mysql> SHOW PROCEDURE STATUS WHERE Db = 'query';
mysql> SHOW FUNCTION STATUS WHERE Db = 'query';

これらのコマンドは、ルーチン名だけでなく作成日時や更新日時、セキュリティ設定などの詳細情報も合わせて表示してくれるため、状況に応じて使い分けると便利です。

  1. 特定のMySQLデータベースに保存されているビューの一覧を確認する方法

    MySQLでは、いくつかの異なるクエリを使って、特定のデータベースに保存されているビュー(VIEW)の一覧を簡単に確認できます。この記事では、「query」という名前のデータベースを例に、代表的な3つの方法を紹介します。 1. information_schemaを使ってビュー一覧を取得する まずは、information_schemaデータベースのTABLESテーブルを参照する方法です。TABLE_TYPEが「VIEW」であるレコードを抽出し、TABLE_SCHEMAで対象のデータベースを指定することで、そのデータベース内のビューだけを一覧表示できます。 mysql> SELECT

  2. MySQLで特定のデータベース内にあるビューのメタデータを確認する方法

    MySQLでは、INFORMATION_SCHEMA データベース内の VIEWS テーブルを参照することで、ビューのメタデータ(ビューに関する定義情報)を確認できます。このテーブルには、ビューの定義内容や作成者、更新可否などの詳細が格納されています。ここでは、「Info」という名前のビューを例に、具体的な確認方法を見ていきましょう。ビューのメタデータを取得するクエリ以下のクエリを実行すると、「query」データベース内の「Info」というビューのメタデータを表示できます。mysql> SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_