MariaDB
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> MariaDB

2 cách liệt kê tất cả các hàm trong MariaDB

Dưới đây là hai tùy chọn để trả về danh sách các hàm trong MariaDB.

SHOW FUNCTION STATUS Lệnh

Cách nhanh nhất để liệt kê tất cả các chức năng là sử dụng SHOW FUNCTION STATUS lệnh.

Chỉ cần chạy phần sau để liệt kê tất cả các chức năng:

SHOW FUNCTION STATUS;

Cú pháp như sau:

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

Vì vậy, bạn có thể sử dụng LIKE hoặc WHERE mệnh đề thu hẹp kết quả.

Ví dụ:

SHOW FUNCTION STATUS LIKE '%customer%';

Kết quả ví dụ:

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

Chúng ta có thể sử dụng WHERE mệnh đề để lọc kết quả theo các cột. Ví dụ:chúng tôi có thể lọc kết quả vào một cơ sở dữ liệu nhất định:

SHOW FUNCTION STATUS WHERE db = 'music';

Kết quả ví dụ:

+-------+------+----------+------------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| 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 lệnh hoạt động rất giống với SHOW PROCEDURE STATUS , trả về danh sách các thủ tục được lưu trữ.

information_schema.routines Bảng

Một cách khác để lấy danh sách các hàm trong MariaDB là truy vấn information_schema.routines bảng.

Ví dụ:

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

Kết quả ví dụ:

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

Bảng này cũng lưu trữ thông tin về các thủ tục được lưu trữ. Trong ví dụ trên, tôi đã loại trừ những thứ đó bằng cách sử dụng WHERE mệnh đề chỉ trả về các hàm (tức là các đối tượng có routine_type trong tổng số FUNCTION ).

Để bao gồm các thủ tục được lưu trữ, chúng tôi có thể xóa WHERE mệnh đề:

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

Trong trường hợp này, tôi cũng đã thêm routine_type để chúng ta có thể phân biệt giữa các thủ tục và các hàm.

Chúng tôi cũng có thể thu hẹp nó vào một cơ sở dữ liệu cụ thể:

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

Kết quả:

+----------+----------------------------+--------------+
| 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. Cách MAKEDATE () hoạt động trong MariaDB

  2. Có gì mới trong MariaDB 10.4

  3. Cách hoạt động của hàm INSERT () trong MariaDB

  4. MariaDB FIELD () so với FIND_IN_SET ():Sự khác biệt là gì?

  5. Hỗ trợ cho MariaDB 10.4 trong dbForge Studio được nâng cấp cho MySQL, v.8.1