Для функции:
вы можете запросить представление pg_proc, как показано ниже:
select proname,prosrc from pg_proc where proname= your_function_name;
Другой способ - просто выполнить commont \df
и\ef
, который может перечислить функции.
skytf=> \df
List of functions
Schema | Name | Result data type | Argument data types | Type
--------+----------------------+------------------+------------------------------------------------+--------
public | pg_buffercache_pages | SETOF record | | normal
skytf=> \ef pg_buffercache_pages
Будет показан исходный код функции.
Для триггеров:
IНе знаю, есть ли прямой способ получить исходный код.Просто знайте следующий способ, может быть, он вам поможет!
- шаг 1: Получите oid таблицы триггера:
skytf=> select tgrelid from pg_trigger where tgname='insert_tbl_tmp_trigger';
tgrelid
---------
26599
(1 row)
- шаг 2: Получить имя таблицы вышеупомянутого oid!
skytf=> select oid,relname from pg_class where oid=26599;
oid | relname
-------+-----------------------------
26599 | tbl_tmp
(1 row)
- шаг 3: перечислить информацию о таблице
skytf=> \d tbl_tmp
Она покажет вам деталитриггера таблицы.Обычно триггер использует функцию.Таким образом, вы можете получить исходный код функции триггера, как указано выше, как я указал!