Thủ tục SHOW trong MySQL

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]
3

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 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ố 8

Hã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

Đây là cú pháp cơ bản của câu lệnh

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

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

Câ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ập

Câ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

Thủ tục SHOW trong MySQL
Thủ tục SHOW trong MySQL

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 sau

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

Ví 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]
23

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

Trong 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ư sau

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

Câ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]
0
Thủ tục SHOW trong MySQL
Thủ tục SHOW trong MySQL

Liệ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]
3

Ví 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]
23

SHOW PROCEDURE STATUS
    [LIKE 'pattern' | WHERE expr]
5
Thủ tục SHOW trong MySQL
Thủ tục SHOW trong MySQL

Hiể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

Thủ tục SHOW trong MySQL
Thủ tục SHOW trong MySQL

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