MariaDB
 sql >> база данни >  >> RDS >> MariaDB

2 начина за изброяване на всички функции в MariaDB

По-долу са две опции за връщане на списък с функции в MariaDB.

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    |
+----------+----------------------------+--------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Преглед на MariaDB Xpand (бивш ClustrixDB)

  2. Как PI() работи в MariaDB

  3. Как да конфигурирате AppArmor за системи, базирани на MySQL (MySQL/MariaDB репликация + Galera)

  4. MariaDB Функции за дата и час (пълен списък)

  5. Как работи MICROSECOND() в MariaDB