Listing Stored Procedures in a MySQL Database

http://www.mysqltutorial.org/listing-stored-procedures-in-mysql-database.aspx

Tóm tắt: trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách liệt kê tất cả các thủ tục được lưu trữ trong cơ sở dữ liệu MySQL và giới thiệu cho bạn một câu lệnh rất hữu ích hiển thị mã nguồn thủ tục được lưu trữ.

MySQL cung cấp cho chúng tôi một số câu lệnh hữu ích giúp quản lý các thủ tục được lưu trữ hiệu quả hơn. Những tuyên bố này bao gồm liệt kê các thủ tục được lưu trữ và hiển thị quy trình được lưu trữ mã nguồn.

Displaying characteristics of stored procedures

Để hiển thị các đặc điểm của một thủ tục được lưu trữ, bạn sử dụng câu lệnh SHOW PROCEDURE STATUS như sau:

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

Câu lệnh SHOW PROCEDURE STATUS là phần mở rộng của MySQL theo tiêu chuẩn SQL. Câu lệnh này cung cấp cho bạn các thủ tục được lưu trữ Các đặc điểm của bộ dữ liệu bao gồm cơ sở dữ liệu, tên thủ tục được lưu trữ, loại, trình tạo, v.v.

Bạn có thể sử dụng mệnh đề THÍCH hoặc WHERE để lọc thủ tục được lưu trữ dựa trên các tiêu chí khác nhau.

Để liệt kê tất cả các thủ tục được lưu trữ của cơ sở dữ liệu mà bạn có đặc quyền truy cập, bạn sử dụng câu lệnh SHOW PROCEDURE STATUS như sau:

SHOW PROCEDURE STATUS;

Nếu bạn muốn chỉ hiển thị thủ tục được lưu trữ trong một cơ sở dữ liệu cụ thể, bạn có thể sử dụng mệnh đề WHERE trong câu lệnh SHOW PROCEDURE STATUS:

SHOW PROCEDURE STATUS WHERE db = 'classicmodels';
mysql> SHOW PROCEDURE STATUS WHERE db = 'learnsql';
Kết qủa: 
+----------+----------------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| Db       | Name           | Type      | Definer        | Modified            | Created             | Security_type | Comment | character_set_client | collation_connection | Database Collation |
+----------+----------------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| learnsql | GetAllProducts | PROCEDURE | root@localhost | 2019-08-01 00:52:15 | 2019-08-01 00:52:15 | DEFINER       |         | utf8mb4              | utf8mb4_unicode_ci   | utf8mb4_unicode_ci |
| learnsql | prc_test       | PROCEDURE | root@localhost | 2019-08-01 00:54:30 | 2019-08-01 00:54:30 | DEFINER       |         | utf8mb4              | utf8mb4_unicode_ci   | utf8mb4_unicode_ci |
+----------+----------------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+

Nếu bạn muốn hiển thị các quy trình được lưu trữ có một mẫu cụ thể, ví dụ: tên của nó chứa sản phẩm, bạn có thể sử dụng toán tử LIKE như lệnh sau:

SHOW PROCEDURE STATUS WHERE name LIKE '%product%'

Displaying stored procedure’s source code

Để hiển thị mã nguồn của một thủ tục được lưu trữ cụ thể, bạn sử dụng câu lệnh SHOW CREATE PROCEDURE như sau:

SHOW CREATE PROCEDURE stored_procedure_name
mysql> SHOW CREATE PROCEDURE GetAllProducts;
+----------------+-------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+
| Procedure      | sql_mode                                                                                                                                  | Create Procedure                                                                                          | character_set_client | collation_connection | Database Collation |
+----------------+-------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+
| GetAllProducts | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION | CREATE DEFINER=`root`@`localhost` PROCEDURE `GetAllProducts`()
BEGIN
   SELECT *  FROM products;
   END | utf8mb4              | utf8mb4_unicode_ci   | utf8mb4_unicode_ci |
+----------------+-------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+

Trong hướng dẫn này, bạn đã học được một số câu lệnh hữu ích bao gồm SHOW PROCEDURE STATUS và SHOW CREATE PROCEDURE để liệt kê các thủ tục được lưu trữ trong cơ sở dữ liệu và lấy mã nguồn của thủ tục được lưu trữ.

Last updated