以下は、MariaDBの関数のリストを返すための2つのオプションです。
SHOW FUNCTION STATUS
コマンド
すべての関数を一覧表示する最も簡単な方法は、SHOW FUNCTION STATUS
を使用することです。 コマンド。
以下を実行するだけで、すべての機能が一覧表示されます。
SHOW FUNCTION STATUS;
構文は次のようになります:
SHOW FUNCTION STATUS
[LIKE 'pattern' | WHERE expr]
したがって、LIKE
を使用できます またはWHERE
結果を絞り込むための句。
例:
SHOW FUNCTION STATUS LIKE '%customer%';
結果の例:
+--------+----------------------------+----------+------------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+ | Db | Name | Type | Definer | Modified | Created | Security_type | Comment | character_set_client | collation_connection | Database Collation | +--------+----------------------------+----------+------------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+ | sakila | get_customer_balance | FUNCTION | [email protected] | 2021-11-13 07:26:47 | 2021-11-13 07:26:47 | DEFINER | | utf8mb4 | utf8mb4_general_ci | utf8mb4_general_ci | | sakila | inventory_held_by_customer | FUNCTION | [email protected] | 2021-11-13 07:26:47 | 2021-11-13 07:26:47 | DEFINER | | utf8mb4 | utf8mb4_general_ci | utf8mb4_general_ci | +--------+----------------------------+----------+------------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
WHERE
を使用できます 結果を列でフィルタリングする句。たとえば、結果を特定のデータベースにフィルタリングできます。
SHOW FUNCTION STATUS WHERE db = 'music';
結果の例:
+-------+------+----------+------------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+ | Db | Name | Type | Definer | Modified | Created | Security_type | Comment | character_set_client | collation_connection | Database Collation | +-------+------+----------+------------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+ | music | test | FUNCTION | [email protected] | 2021-11-27 09:46:25 | 2021-11-27 09:46:25 | DEFINER | | utf8 | utf8_general_ci | utf8mb4_general_ci | +-------+------+----------+------------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
SHOW FUNCTION STATUS
コマンドは、SHOW PROCEDURE STATUS
と非常によく似ています。 コマンド。ストアドプロシージャのリストを返します。
information_schema.routines
表
MariaDBの関数のリストを取得する別の方法は、information_schema.routines
にクエリを実行することです。 テーブル。
例:
SELECT
routine_schema as "Database",
routine_name
FROM
information_schema.routines
WHERE
routine_type = 'FUNCTION'
ORDER BY
routine_schema ASC,
routine_name ASC;
結果の例:
+----------+----------------------------+ | Database | routine_name | +----------+----------------------------+ | music | test | | sakila | get_customer_balance | | sakila | inventory_held_by_customer | | sakila | inventory_in_stock | +----------+----------------------------+
このテーブルには、ストアドプロシージャに関する情報も格納されます。上記の例では、WHERE
を使用してそれらを除外しました 関数(つまり、routine_type
を持つオブジェクト)のみを返す句 FUNCTION
の 。
ストアドプロシージャを含めるために、WHERE
を削除できます 条項:
SELECT
routine_schema as "Database",
routine_name,
routine_type
FROM
information_schema.routines
ORDER BY
routine_schema ASC,
routine_name ASC;
この場合、routine_type
も追加しました 手順と機能を区別できるように列を作成します。
特定のデータベースに絞り込むこともできます:
SELECT
routine_schema as "Database",
routine_name,
routine_type
FROM
information_schema.routines
WHERE
routine_schema = 'sakila'
ORDER BY
routine_name ASC;
結果:
+----------+----------------------------+--------------+ | Database | routine_name | routine_type | +----------+----------------------------+--------------+ | sakila | film_in_stock | PROCEDURE | | sakila | film_not_in_stock | PROCEDURE | | sakila | get_customer_balance | FUNCTION | | sakila | inventory_held_by_customer | FUNCTION | | sakila | inventory_in_stock | FUNCTION | | sakila | rewards_report | PROCEDURE | +----------+----------------------------+--------------+