Dưới đây là ba tùy chọn để liệt kê tất cả các chức năng trong cơ sở dữ liệu PostgreSQL.
information_schema.routines
Xem
Dạng xem này chứa tất cả các hàm và thủ tục trong cơ sở dữ liệu hiện tại mà người dùng hiện tại có quyền truy cập (bằng cách là chủ sở hữu hoặc có một số đặc quyền).
Dưới đây là một ví dụ về việc trả về danh sách các hàm:
SELECT
routine_name
FROM
information_schema.routines
WHERE
routine_type = 'FUNCTION'
AND
routine_schema = 'public';
Trong ví dụ này, chỉ các chức năng với public
lược đồ được trả về. Vui lòng bao gồm nhiều cột hơn nếu cần.
pg_proc
Danh mục
pg_catalog.pg_proc
danh mục lưu trữ thông tin về các hàm, thủ tục, hàm tổng hợp và các hàm cửa sổ.
Chúng ta có thể tham gia điều này bằng pg_catalog.pg_namespace
danh mục để lọc kết quả thành chỉ các thủ tục có public
không gian tên:
SELECT
n.nspname,
p.proname
FROM
pg_catalog.pg_namespace n
JOIN
pg_catalog.pg_proc p ON
p.pronamespace = n.oid
WHERE
p.prokind = 'f'
AND
n.nspname = 'public';
Chúng tôi đã lọc thành một prokind
trong tổng số f
để giới hạn kết quả chỉ ở các chức năng bình thường.
Các giá trị có thể là f
cho một chức năng bình thường, p
cho một thủ tục, a
cho một hàm tổng hợp, hoặc w
cho một chức năng cửa sổ.
\df
Lệnh
Khi sử dụng psql, chúng ta có thể sử dụng \df
lệnh:
\df
Theo mặc định, điều này chỉ trả về các đối tượng do người dùng tạo. Ngoài ra, bạn có thể cung cấp một mẫu hoặc S
sửa đổi để bao gồm các đối tượng hệ thống.
Dưới đây là một ví dụ về việc cung cấp một mẫu:
\df *key*
Ví dụ đó thu hẹp các kết quả chỉ còn các hàm / thủ tục đó bằng văn bản key
nhân danh họ.
Lưu ý rằng lệnh này cũng trả về các thủ tục đã lưu trữ. Loại quy trình (ví dụ:func
, proc
) được liệt kê trong một loại type
trong đầu ra.