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 mệnh đề
SHOW PROCEDURE STATUS
[LIKE 'pattern' | WHERE expr]
3 để chỉ trả lại các thủ tục được lưu trữ [i. e. các đối tượng có SHOW PROCEDURE STATUS
[LIKE 'pattern' | WHERE expr]
7 của SHOW PROCEDURE STATUS
[LIKE 'pattern' | WHERE expr]
8]Để bao gồm các chức năng được lưu trữ, chúng ta có thể loại bỏ mệnh đề
SHOW PROCEDURE STATUS
[LIKE 'pattern' | WHERE expr]
3SELECT
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 cột
SHOW PROCEDURE STATUS
[LIKE 'pattern' | WHERE expr]
7 để chúng ta phân biệt giữa thủ tục và hàm Các thủ tục được lưu trữ là các thủ tục con, đoạn câu lệnh SQL được lưu trữ trong danh mục SQL. Tất cả các ứng dụng có thể truy cập cơ sở dữ liệu quan hệ [Java, Python, PHP, v.v. ], có thể truy cập các thủ tục được lưu trữ
Các thủ tục được lưu trữ chứa các tham số IN và OUT hoặc cả hai. Chúng có thể trả về tập kết quả trong trường hợp bạn sử dụng câu lệnh SELECT. Các thủ tục được lưu trữ có thể trả về nhiều bộ kết quả
Câu lệnh HIỂN THỊ MÃ THỦ TỤC hiển thị mã nội bộ của thủ tục được lưu trữ có tên đã chỉ định. Để thực thi câu lệnh này, chúng ta cần có đặc quyền SHOW ROUTENE hoặc SELECT [toàn cục]
Câu lệnh này trả về mã dưới dạng một tập hợp kết quả trong đó, mỗi hàng trong đó đại diện cho một hướng dẫn trong thủ tục
Tuyên bố này chỉ có sẵn cho các máy chủ gỡ lỗi. Để thực hiện điều này, đảm bảo rằng bạn đã xây dựng MySQL của mình với tùy chọn '--with-debug' nếu không sẽ xảy ra lỗi như sau -
ERROR 1289 [HY000]: The 'SHOW PROCEDURE|FUNCTION CODE' feature is disabled; you need MySQL built with '--with-debug' to have it working
cú pháp
Sau đây là cú pháp câu lệnh SHOW PROCEDURE CODE -
SHOW PROCEDURE CODE proc_name
Trong đó proc_name là tên của thủ tục mà bạn cần mã
Ví dụ
Giả sử chúng ta đã tạo một bảng có tên là Marks trong cơ sở dữ liệu như hình bên dưới -
________số 8Hãy để chúng tôi tạo một thủ tục được lưu trữ myProcedure chấp nhận chèn một bản ghi vào bảng đã tạo ở trên. -
Liệt kê các thủ tục và chức năng của người dùng cho tất cả các cơ sở dữ liệu
SELECT
`ROUTINE_SCHEMA` AS `database`
,`ROUTINE_TYPE` AS `type`
,`SPECIFIC_NAME` AS `name`
,`DTD_IDENTIFIER` AS `data_type`
FROM
`INFORMATION_SCHEMA`.`ROUTINES`
WHERE
`definer` LIKE
CONCAT['%', CONCAT[[SUBSTRING_INDEX[[SELECT user[]], '@', 1]], '%']]
ORDER BY
`database`
,`type`
,`name`
;
Liệt kê các thủ tục và chức năng của người dùng cho cơ sở dữ liệu đang sử dụng
SHOW PROCEDURE STATUS
[LIKE 'pattern' | WHERE expr]
0 Tóm lược. trong hướng dẫn này, bạn sẽ học cách liệt kê các thủ tục được lưu trữ từ cơ sở dữ liệu trong Máy chủ MySQL
Liệt kê các thủ tục được lưu trữ bằng cách sử dụng câu lệnh SHOW PROCEDURE STATUS
[LIKE 'pattern' | WHERE expr]
6
SHOW PROCEDURE STATUS
[LIKE 'pattern' | WHERE expr]
Đây là cú pháp cơ bản của câu lệnh
SHOW PROCEDURE STATUS
[LIKE 'pattern' | WHERE expr]
6SHOW PROCEDURE STATUS
[LIKE 'pattern' | WHERE expr]
1Câu lệnh
SHOW PROCEDURE STATUS
[LIKE 'pattern' | WHERE expr]
6 hiển thị tất cả các đặc điểm của thủ tục được lưu trữ bao gồm tên thủ tục được lưu trữ. Nó trả về các thủ tục được lưu trữ mà bạn có quyền truy cậpCâu lệnh sau hiển thị tất cả thủ tục được lưu trữ trong máy chủ MySQL hiện tại
SHOW PROCEDURE STATUS
[LIKE 'pattern' | WHERE expr]
2Đây là đầu ra một phần
Nếu bạn chỉ muốn hiển thị các thủ tục được lưu trữ trong một cơ sở dữ liệu cụ thể, thì bạn có thể sử dụng mệnh đề
SHOW PROCEDURE STATUS
[LIKE 'pattern' | WHERE expr]
21 trong SHOW PROCEDURE STATUS
[LIKE 'pattern' | WHERE expr]
6 như được minh họa trong câu lệnh sauSHOW PROCEDURE STATUS
[LIKE 'pattern' | WHERE expr]
4Ví dụ: câu lệnh này liệt kê tất cả các thủ tục được lưu trữ trong cơ sở dữ liệu mẫu
SHOW PROCEDURE STATUS
[LIKE 'pattern' | WHERE expr]
23SHOW PROCEDURE STATUS
[LIKE 'pattern' | WHERE expr]
6Trong trường hợp bạn muốn tìm các thủ tục lưu trữ có tên chứa một từ cụ thể, bạn có thể sử dụng mệnh đề
SHOW PROCEDURE STATUS
[LIKE 'pattern' | WHERE expr]
24 như sauSHOW PROCEDURE STATUS
[LIKE 'pattern' | WHERE expr]
8Câu lệnh sau hiển thị tất cả thủ tục lưu trữ có tên chứa từ ____125
SHOW PROCEDURE STATUS
[LIKE 'pattern' | WHERE expr]
0Liệt kê các thủ tục được lưu trữ bằng từ điển dữ liệu
Bảng
SHOW PROCEDURE STATUS
[LIKE 'pattern' | WHERE expr]
26 trong cơ sở dữ liệu SHOW PROCEDURE STATUS
[LIKE 'pattern' | WHERE expr]
27 chứa tất cả thông tin về thủ tục được lưu trữ và chức năng được lưu trữ của tất cả cơ sở dữ liệu trong máy chủ MySQL hiện tạiĐể hiển thị tất cả các thủ tục được lưu trữ của một cơ sở dữ liệu cụ thể, bạn sử dụng truy vấn sau
SHOW PROCEDURE STATUS
[LIKE 'pattern' | WHERE expr]
3Ví dụ: câu lệnh này liệt kê tất cả các thủ tục được lưu trữ trong cơ sở dữ liệu
SHOW PROCEDURE STATUS
[LIKE 'pattern' | WHERE expr]
23SHOW PROCEDURE STATUS
[LIKE 'pattern' | WHERE expr]
5Hiển thị các thủ tục được lưu trữ bằng MySQL Workbench
Trong MySQL Workbench, bạn có thể xem tất cả các thủ tục được lưu trữ từ cơ sở dữ liệu
Bước 1. Truy cập cơ sở dữ liệu mà bạn muốn xem các thủ tục được lưu trữ
Bước 2. Mở menu Thủ tục lưu trữ. Bạn sẽ thấy một danh sách các thủ tục được lưu trữ thuộc về cơ sở dữ liệu hiện tại
Trong hướng dẫn này, bạn đã học cách liệt kê các thủ tục được lưu trữ trong cơ sở dữ liệu bằng cách truy vấn chúng từ từ điển dữ liệu