MySQLで特定のデータベース内のストアドプロシージャ一覧だけを表示する方法
特定のデータベースのストアドプロシージャのみを表示する方法
MySQLでは、INFORMATION_SCHEMA.ROUTINES テーブルを参照することで、データベースに定義されたストアドプロシージャやストアドファンクションの一覧を取得できます。特定のデータベースに存在する「プロシージャ」だけを絞り込んで表示したい場合は、次のようなクエリを実行します。
mysql> SELECT ROUTINE_TYPE, ROUTINE_NAME FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_SCHEMA = 'query' AND ROUTINE_TYPE = 'PROCEDURE'//
+--------------+------------------------+
| ROUTINE_TYPE | ROUTINE_NAME |
+--------------+------------------------+
| PROCEDURE | allrecords |
+--------------+------------------------+
1 row in set (0.05 sec)
クエリのポイント
- ROUTINE_SCHEMA = 'query':対象となるデータベース名を指定します。この例では「query」というデータベースが検索対象になっています。
- ROUTINE_TYPE = 'PROCEDURE':ストアドプロシージャのみを抽出する条件です。この条件を指定しない場合、ストアドファンクションも結果に含まれてしまいます。
- INFORMATION_SCHEMA.ROUTINES:データベース内に定義されたルーチン(プロシージャおよびファンクション)の情報を格納しているシステムビューです。
実行結果から、「query」データベースには「allrecords」という1件のストアドプロシージャが登録されていることが確認できます。
なお、現在接続中のデータベースに登録されているプロシージャを手軽に確認したい場合は、SHOW PROCEDURE STATUS WHERE Db = DATABASE(); という構文を利用する方法もあります。用途に応じて使い分けると便利です。
-
MySQLで特定のデータベース内にあるビューのメタデータを確認する方法
MySQLでは、INFORMATION_SCHEMA データベース内の VIEWS テーブルを参照することで、ビューのメタデータ(ビューに関する定義情報)を確認できます。このテーブルには、ビューの定義内容や作成者、更新可否などの詳細が格納されています。ここでは、「Info」という名前のビューを例に、具体的な確認方法を見ていきましょう。ビューのメタデータを取得するクエリ以下のクエリを実行すると、「query」データベース内の「Info」というビューのメタデータを表示できます。mysql> SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_
-
PHPでMySQLデータベースの一覧を取得する方法【サンプルコード付き】
利用可能なMySQLデータベースのリストを取得するには、PHPスクリプトを活用します。ここでは、基本的な取得方法から、現行のPHP環境で推奨される書き方まで、順を追って解説します。 基本的なサンプルコード 以下は、従来の mysql 拡張モジュールを使って、サーバー上の全データベース一覧を取得して表示するシンプルな例です。 <?php $con = mysql_connect("localhost", "userid", "password"); &n