PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana cara memeriksa fungsi mana yang menggunakan tipe?

Anda dapat menemukan semua dependensi dalam katalog sistem pg_depend .

Ini mengembalikan semua fungsi tergantung pada jenisnya . Yaitu. tidak hanya mereka dengan tipe di RETURNS klausa, tetapi juga yang memiliki tipe sebagai parameter fungsi:

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

Ini juga berfungsi untuk fungsi tabel:

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

Menggunakan fungsi informasi katalog sistem .

Mungkin ada dependensi lain (bukan fungsi). Hapus WHERE terakhir kondisi dari kueri saya untuk diuji (dan sesuaikan SELECT daftar, tentu saja).

Dan masih ada kemungkinan jenis yang digunakan secara eksplisit (dalam gips misalnya) dalam kueri di badan fungsi atau di SQL dinamis. Anda hanya dapat mengidentifikasi kasus penggunaan tersebut dengan mengurai teks dari badan fungsi. Tidak ada dependensi eksplisit yang terdaftar dalam sistem.

Terkait:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa mendengarkan database postgresql dengan SignalR Core di .net core project?

  2. Bagaimana cara menghindari karakter tanda tanya (?) dengan Spring JpaRepository

  3. Rails 3, ActiveRecord, PostgreSQL - perintah .uniq tidak berfungsi?

  4. Daftar Python ke Array PostgreSQL

  5. Bagaimana cara mendapatkan jumlah total tabel di postgresql?