MySQLで特定のデータベースのストアドプロシージャ一覧と詳細情報を確認する方法
SHOW PROCEDURE STATUSでストアドプロシージャの一覧を取得する
MySQLでは、SHOW PROCEDURE STATUSステートメントにWHERE db = 'データベース名'という条件を付けることで、特定のデータベースに存在するストアドプロシージャの一覧を、作成日時や定義者などの詳細情報とともに確認できます。
以下は、queryというデータベース内のストアドプロシージャを確認する実行例です。
mysql> SHOW PROCEDURE STATUS WHERE db = 'query'\G
*************************** 1. row ***************************
Db: query
Name: allrecords
Type: PROCEDURE
Definer: root@localhost
Modified: 2017-11-11 09:56:11
Created: 2017-11-11 09:56:11
Security_type: DEFINER
Comment:
character_set_client: cp850
collation_connection: cp850_general_ci
Database Collation: latin1_swedish_ci
1 row in set (0.01 sec)出力結果の各項目の意味
- Db: ストアドプロシージャが属するデータベース名
- Name: ストアドプロシージャの名前
- Type: オブジェクトの種類(PROCEDURE=プロシージャ、FUNCTION=ファンクション)
- Definer: プロシージャを作成したユーザーアカウント
- Modified / Created: 最終更新日時と作成日時
- Security_type: 実行時のセキュリティコンテキスト(DEFINERまたはINVOKER)
- character_set_client / collation_connection: 作成時に使用された文字セットと照合順序
information_schemaを使った代替方法
information_schema.ROUTINESテーブルを参照することでも、同様の情報を取得できます。こちらはSQLのSELECT文なので、必要な列だけを柔軟に抽出できるのが利点です。
SELECT ROUTINE_NAME, ROUTINE_TYPE, DEFINER, CREATED, LAST_ALTERED FROM information_schema.ROUTINES WHERE ROUTINE_SCHEMA = 'query';
このように、SHOW PROCEDURE STATUSを使えば、単なるプロシージャ名の一覧だけでなく、定義者や作成日時などのメタ情報も一度に把握できます。データベースの保守や監査の際に非常に便利なコマンドです。
-
特定のMySQLデータベースに保存されているビューの一覧を確認する方法
MySQLでは、いくつかの異なるクエリを使って、特定のデータベースに保存されているビュー(VIEW)の一覧を簡単に確認できます。この記事では、「query」という名前のデータベースを例に、代表的な3つの方法を紹介します。 1. information_schemaを使ってビュー一覧を取得する まずは、information_schemaデータベースのTABLESテーブルを参照する方法です。TABLE_TYPEが「VIEW」であるレコードを抽出し、TABLE_SCHEMAで対象のデータベースを指定することで、そのデータベース内のビューだけを一覧表示できます。 mysql> SELECT
-
MySQLで特定のデータベース内にあるビューのメタデータを確認する方法
MySQLでは、INFORMATION_SCHEMA データベース内の VIEWS テーブルを参照することで、ビューのメタデータ(ビューに関する定義情報)を確認できます。このテーブルには、ビューの定義内容や作成者、更新可否などの詳細が格納されています。ここでは、「Info」という名前のビューを例に、具体的な確認方法を見ていきましょう。ビューのメタデータを取得するクエリ以下のクエリを実行すると、「query」データベース内の「Info」というビューのメタデータを表示できます。mysql> SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_