MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

2 sposoby na wyświetlenie listy wszystkich funkcji w MariaDB

Poniżej znajdują się dwie opcje zwracania listy funkcji w MariaDB.

SHOW FUNCTION STATUS Polecenie

Najszybszym sposobem na wyświetlenie listy wszystkich funkcji jest użycie SHOW FUNCTION STATUS polecenie.

Po prostu uruchom następujące polecenie, aby wyświetlić wszystkie funkcje:

SHOW FUNCTION STATUS;

Składnia wygląda tak:

SHOW FUNCTION STATUS
    [LIKE 'pattern' | WHERE expr]

Możesz więc użyć LIKE lub WHERE klauzula zawężająca wyniki.

Przykład:

SHOW FUNCTION STATUS LIKE '%customer%';

Przykładowy wynik:

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

Możemy użyć WHERE klauzula, aby filtrować wyniki według kolumn. Na przykład możemy filtrować wyniki do danej bazy danych:

SHOW FUNCTION STATUS WHERE db = 'music';

Przykładowy wynik:

+-------+------+----------+------------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| 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 polecenie działa bardzo podobnie do SHOW PROCEDURE STATUS polecenie, które zwraca listę procedur składowanych.

information_schema.routines Tabela

Innym sposobem uzyskania listy funkcji w MariaDB jest zapytanie o information_schema.routines tabela.

Przykład:

SELECT 
    routine_schema as "Database",
    routine_name
FROM 
    information_schema.routines
WHERE 
    routine_type = 'FUNCTION'
ORDER BY 
    routine_schema ASC, 
    routine_name ASC;

Przykładowy wynik:

+----------+----------------------------+
| Database | routine_name               |
+----------+----------------------------+
| music    | test                       |
| sakila   | get_customer_balance       |
| sakila   | inventory_held_by_customer |
| sakila   | inventory_in_stock         |
+----------+----------------------------+

Ta tabela przechowuje również informacje o procedurach składowanych. W powyższym przykładzie wykluczyłem je za pomocą WHERE klauzula zwracająca tylko funkcje (tj. obiekty z routine_type z FUNCTION ).

Aby uwzględnić procedury składowane, możemy usunąć WHERE klauzula:

SELECT 
    routine_schema as "Database",
    routine_name,
    routine_type
FROM 
    information_schema.routines
ORDER BY 
    routine_schema ASC, 
    routine_name ASC;

W tym przypadku dodałem również routine_type kolumna, abyśmy mogli rozróżnić procedury i funkcje.

Możemy również zawęzić go do konkretnej bazy danych:

SELECT 
    routine_schema as "Database",
    routine_name,
    routine_type
FROM 
    information_schema.routines
WHERE 
    routine_schema = 'sakila'
ORDER BY 
    routine_name ASC;

Wynik:

+----------+----------------------------+--------------+
| 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. Jak uruchamiać aplikacje PHP 5 z MySQL 8.0 na CentOS 7?

  2. Jak wykonać operację powrotu po awarii dla konfiguracji replikacji MySQL

  3. Jak działa POSITION() w MariaDB

  4. Funkcja MIN() w MariaDB

  5. Analityka z MariaDB AX - tThe Open Source Columnar Datastore