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

Cách liệt kê tất cả các thủ tục được lưu trữ trong MariaDB

Trong MariaDB, chúng ta có thể sử dụng SHOW PROCEDURE STATUS lệnh để trả về danh sách các thủ tục đã lưu trữ.

Chúng tôi cũng có thể truy vấn information_schema.routines để làm điều tương tự.

SHOW PROCEDURE STATUS Lệnh

Cách dễ nhất để liệt kê tất cả các thủ tục được lưu trữ là sử dụng SHOW PROCEDURE STATUS lệnh.

Chỉ cần chạy như sau để liệt kê tất cả các thủ tục được lưu trữ:

SHOW PROCEDURE STATUS;

Cú pháp như sau:

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

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

Ví dụ:

SHOW PROCEDURE STATUS LIKE 'film%';

Kết quả:

+--------+-------------------+-----------+------------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| Db     | Name              | Type      | Definer          | Modified            | Created             | Security_type | Comment | character_set_client | collation_connection | Database Collation |
+--------+-------------------+-----------+------------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| sakila | film_in_stock     | PROCEDURE | [email protected] | 2021-11-13 07:26:47 | 2021-11-13 07:26:47 | DEFINER       |         | utf8mb4              | utf8mb4_general_ci   | utf8mb4_general_ci |
| sakila | film_not_in_stock | PROCEDURE | [email protected] | 2021-11-13 07:26:47 | 2021-11-13 07:26:47 | DEFINER       |         | utf8mb4              | utf8mb4_general_ci   | utf8mb4_general_ci |
+--------+-------------------+-----------+------------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+

information_schema.routines Bảng

Một cách khác để lấy danh sách các thủ tục được lưu trữ 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 = 'PROCEDURE'
ORDER BY 
    routine_schema ASC, 
    routine_name ASC;

Kết quả:

+----------+--------------------+
| Database | routine_name       |
+----------+--------------------+
| mysql    | AddGeometryColumn  |
| mysql    | DropGeometryColumn |
| pethouse | spGetAllPets       |
| pethouse | spGetPetById       |
| sakila   | film_in_stock      |
| sakila   | film_not_in_stock  |
| sakila   | rewards_report     |
+----------+--------------------+

Bảng này cũng lưu trữ thông tin về các chức năng đượ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 thủ tục được lưu trữ (tức là các đối tượng có routine_type trong tổng số PROCEDURE ).

Để bao gồm các chức năng đượ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;

Kết quả:

+----------+----------------------------+--------------+
| Database | routine_name               | routine_type |
+----------+----------------------------+--------------+
| mysql    | AddGeometryColumn          | PROCEDURE    |
| mysql    | DropGeometryColumn         | PROCEDURE    |
| pethouse | spGetAllPets               | PROCEDURE    |
| pethouse | spGetPetById               | PROCEDURE    |
| 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    |
+----------+----------------------------+--------------+

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ể loại trừ một số cơ sở dữ liệu nhất định khỏi kết quả nếu chúng tôi muốn:

SELECT 
    routine_schema as "Database",
    routine_name,
    routine_type
FROM 
    information_schema.routines
WHERE 
    routine_schema NOT IN ('sys', 'information_schema', 'mysql', 'performance_schema')
ORDER BY 
    routine_schema ASC, 
    routine_name ASC;

Kết quả:

+----------+----------------------------+--------------+
| Database | routine_name               | routine_type |
+----------+----------------------------+--------------+
| pethouse | spGetAllPets               | PROCEDURE    |
| pethouse | spGetPetById               | PROCEDURE    |
| 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    |
+----------+----------------------------+--------------+

Hoặc chúng tôi có thể thu hẹp nó xuống một cơ sở dữ liệu nhất định:

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

Kết quả:

+----------+--------------+--------------+
| Database | routine_name | routine_type |
+----------+--------------+--------------+
| pethouse | spGetAllPets | PROCEDURE    |
| pethouse | spGetPetById | 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. Nâng cấp lên Jira mới nhất với phiên bản mới nhất của máy chủ MariaDB

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

  3. 20 Mẹo:Chuẩn bị cơ sở dữ liệu của bạn cho Thứ Sáu Đen và Thứ Hai Điện Tử

  4. Tổng quan về Phân cụm ProxySQL trong ClusterControl

  5. Cách kết nối các chương trình C ++ với MariaDB