IT박스

PostgreSQL에서 테이블을 참조하는 저장된 함수 나열

itboxs 2020. 11. 1. 17:27

PostgreSQL에서 테이블을 참조하는 저장된 함수 나열


빠르고 간단한 질문입니다. PostgreSQL에서 가능한 경우 SELECT 문을 사용하여 테이블을 사용하여 모든 저장 함수 / 저장 프로 시저의 이름을 어떻게 나열합니까? 간단한 SELECT로 충분하지 않으면 저장된 함수로 할 수 있습니다.

내 질문은이 다른 질문과 다소 유사하다고 생각하지만이 다른 질문은 SQL Server 2005 :
List of Stored Procedure from Table

(선택 사항) 그 문제에 대해 동일한 방식으로 동일한 테이블을 사용하는 트리거 및 제약 조건을 어떻게 나열합니까?


SELECT  p.proname
FROM    pg_catalog.pg_namespace n
JOIN    pg_catalog.pg_proc p
ON      p.pronamespace = n.oid
WHERE   n.nspname = 'public';

SELECT  proname, prosrc
FROM    pg_catalog.pg_namespace n
JOIN    pg_catalog.pg_proc p
ON      pronamespace = n.oid
WHERE   nspname = 'public';

psql을 사용하는 경우 다음을 시도하십시오. \df

man 페이지에서 :

Tip
To look up functions taking arguments or returning values of a specific type, use your pager's search capability to scroll through the \df output.

달리는 장면 뒤에서 \set ECHO_HIDDEN무엇이 \df실행되고 있는지 보여 줍니다.


@quassnoi 및 @davidwhthomas와 동일하지만 여기에 인수 이름을 추가했습니다.

SELECT  proname, proargnames, prosrc 
FROM    pg_catalog.pg_namespace n
JOIN    pg_catalog.pg_proc p
ON      pronamespace = n.oid
WHERE   nspname = 'public';

함수를 나열하는 목적이 함수를 정리하거나 변경된 매개 변수 목록으로 새 함수를 반복하는 것이라면 자주 함수를 삭제해야합니다.

DROP FUNCTION <name>(<args>);

proargname을 추가하여 드롭에 적용 할 수있는 함수 이름을 구성 할 수 있습니다.

또한 기능을 평가할 때보다 완전한 그림을 보는 것이 좋습니다.


표준 information_schema스키마를 사용 하여 데이터베이스에 대한 메타 데이터를 가져올 수 있습니다 (SQL 표준에 있으므로 다른 데이터베이스 시스템에서 동일한 방식으로 작동해야 함). 이 경우 원하는 information_schema.routines.


시스템 항목 제외 :

select proname from pg_proc where proowner <> 1;

레시피를 보세요 . 함수와 트리거를 읽습니다. 다음의 정보를 기반으로합니다. PostgreSQL (INFORMATION_SCHEMA)에서 META 정보 추출


ALTER 에서 함수를 참조 할 때 필요한 함수 인수 유형검색하려면 oldevectortypes를 사용하는 것이 좋습니다 .

참조 내가 PostgreSQL의에서 특정 스키마의 데이터베이스에 저장된 모든 기능의 목록을 얻을 수 있습니까?

참고 URL : https://stackoverflow.com/questions/1559008/list-stored-functions-that-reference-a-table-in-postgresql