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

Làm thế nào để kiểm tra chức năng nào sử dụng một loại?

Bạn có thể tìm thấy tất cả các phần phụ thuộc trong danh mục hệ thống pg_depend .

Điều này trả về tất cả các chức năng tùy thuộc vào loại . I E. không chỉ những người có loại trong RETURNS mà còn những mệnh đề có kiểu là tham số hàm:

SELECT objid::regproc                            AS function_name
     , pg_get_functiondef(objid)                 AS function_definition
     , pg_get_function_identity_arguments(objid) AS function_args
     , pg_get_function_result(objid)             AS function_returns
FROM   pg_depend
WHERE  refclassid = 'pg_type'::regclass
AND    refobjid   = 'my_type'::regtype    -- insert your type name here
AND    classid    = 'pg_proc'::regclass;  -- only find functions

Điều này cũng hoạt động cho các hàm bảng:

...
RETURNS TABLE (foo my_type, bar int)

Sử dụng chức năng thông tin danh mục hệ thống .

Có thể có các phụ thuộc khác (không phải các hàm). Xóa WHERE cuối cùng điều kiện từ truy vấn của tôi để kiểm tra (và điều chỉnh SELECT danh sách, rõ ràng).

Và vẫn có khả năng kiểu được sử dụng một cách rõ ràng (ví dụ như kiểu ép kiểu) trong các truy vấn trong thân hàm hoặc trong SQL động. Bạn chỉ có thể xác định các trường hợp sử dụng như vậy bằng cách phân tích cú pháp văn bản của thân hàm. Không có phụ thuộc rõ ràng nào được đăng ký trong hệ thống.

Có liên quan:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MultipleActiveResultSets cho mô hình dữ liệu thực thể postgresql và ado.net

  2. Làm cách nào để trả về các hàng kết quả truy vấn trong hàm PostgreSQL?

  3. Làm thế nào để tạo tìm kiếm mờ đơn giản chỉ với PostgreSQL?

  4. tại sao không thể thấy kích thước giản đồ của tôi

  5. Postgres Thông báo không hoạt động với bản sao hợp lý