MySQLの特定データベースにおけるストアドプロシージャの一覧と詳細情報を確認する方法
MySQLでは、mysql.proc テーブルに対してクエリを実行することで、特定のデータベースに存在するストアドプロシージャの一覧とその完全な情報を確認できます。
mysql.proc テーブルを使った確認方法
以下のように db カラムで対象のデータベース名を指定し、type カラムで「PROCEDURE」を条件に絞り込むことで、該当するストアドプロシージャの詳細な情報を取得できます。
mysql> Select * from mysql.proc where db = 'query' AND type = 'PROCEDURE' \G
*************************** 1. row ***************************
db: query
name: allrecords
type: PROCEDURE
specific_name: allrecords
language: SQL
sql_data_access: CONTAINS_SQL
is_deterministic: NO
security_type: DEFINER
param_list:
returns:
body: BEGIN
Select * from Student_info;
END
definer: root@localhost
created: 2017-11-11 09:56:11
modified: 2017-11-11 09:56:11
sql_mode: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
comment:
character_set_client: cp850
collation_connection: cp850_general_ci
db_collation: latin1_swedish_ci
body_utf8: BEGIN
Select * from Student_info;
END
1 row in set (0.00 sec)
出力結果から読み取れる主な情報
上記のクエリ結果からは、次のような情報を確認することができます。
- name(プロシージャ名):作成されたストアドプロシージャの名前。この例では「allrecords」という名前です。
- body(定義内容):プロシージャの本体となるSQL文。
BEGIN ... ENDの間に記述された処理内容がわかります。 - definer(定義者):どのユーザーアカウントによって作成されたかを示します。例では「root@localhost」です。
- created / modified(作成日時・更新日時):プロシージャがいつ作成され、最後に変更されたかの日時情報です。
- security_type(セキュリティタイプ):実行権限が「DEFINER(定義者)」か「INVOKER(呼び出し元)」のどちらに基づくかを示します。
- sql_mode / 文字コード設定:作成時のSQLモードや文字セット・照合順序などの環境設定も記録されています。
補足:MySQL 5.7以降での注意点
mysql.proc テーブルはMySQL 5.6以前で利用できる手法です。MySQL 5.7以降では information_schema.routines テーブルや SHOW CREATE PROCEDURE ステートメントを使用する方法が推奨されています。
例えば、次のようなクエリでも同様にストアドプロシージャの情報を取得できます。
SELECT * FROM information_schema.routines WHERE routine_schema = 'query' AND routine_type = 'PROCEDURE';
使用しているMySQLのバージョンに応じて、適切な方法を選択してください。
-
特定の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_