[SQL] PostgreSQL의에서 테이블을 참조 목록 저장 기능
SQLPostgreSQL의에서 테이블을 참조 목록 저장 기능
그냥 빠르고 간단한 질문 : 가능하면 PostgreSQL을에, 어떻게, 그냥 SELECT 문을 사용하여 테이블을 사용하는 모든 저장 기능 / 저장 프로 시저의 이름을 나열합니까? 간단한 SELECT가 부족하면 내가 저장 기능을 수행 할 수 있습니다.
내 질문은, 내 생각이 다른 질문에 다소 비슷하지만, 다른 문제는 SQL Server 2005를위한 것입니다 : 표에서 저장 프로 시저의 목록
그 문제에 대한 (옵션), 당신은 어떻게 동일한 방식으로 동일한 테이블을 사용하는 트리거 및 제약 조건을 나열합니까?
해결법
-
==============================
1.
SELECT p.proname FROM pg_catalog.pg_namespace n JOIN pg_catalog.pg_proc p ON p.pronamespace = n.oid WHERE n.nspname = 'public';
-
==============================
2.
SELECT proname, prosrc FROM pg_catalog.pg_namespace n JOIN pg_catalog.pg_proc p ON pronamespace = n.oid WHERE nspname = 'public';
-
==============================
3.당신이 psql 프로그램을 사용하는 경우, \ DF 시도
당신이 psql 프로그램을 사용하는 경우, \ DF 시도
남자 페이지에서 :
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.
실행 \ 설정 ECHO_HIDDEN는 무대 뒤에서 실행되는 것을 \ DF 발표 할 예정이다.
-
==============================
4.내가 거기에서 인수 이름을 추가 @quassnoi 및 @davidwhthomas 등을 제외하고 동일 :
내가 거기에서 인수 이름을 추가 @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';
기능을 나열 뒤에 목적을 정리하는 경우 또는으로 반복 변화 PARAMS리스트와 새로운 기능, 자주 기능을 삭제해야합니다 :
DROP FUNCTION <name>(<args>);
proargnames을 추가함으로써, 나는 드롭에 적용 할 수있는 함수 이름을 만들 수 있어요.
또한,이 기능을 평가할 때 더 완전한 그림을 볼 것이 좋다.
-
==============================
5.당신은 (이것은 다른 데이터베이스 시스템에서 동일한 방식으로 작동합니다 그래서, SQL 표준에서의) 데이터베이스에 대한 메타 데이터를 얻을 수있는 표준 INFORMATION_SCHEMA 스키마를 사용할 수 있습니다. 이 경우 information_schema.routines을 원한다.
당신은 (이것은 다른 데이터베이스 시스템에서 동일한 방식으로 작동합니다 그래서, SQL 표준에서의) 데이터베이스에 대한 메타 데이터를 얻을 수있는 표준 INFORMATION_SCHEMA 스키마를 사용할 수 있습니다. 이 경우 information_schema.routines을 원한다.
-
==============================
6.시스템 물건을 제외 :
시스템 물건을 제외 :
select proname from pg_proc where proowner <> 1;
-
==============================
7.내 조리법에서보세요. 그것은 기능과 트리거를 읽습니다. 그것은 행 정보에 기초한다 : PostgreSQL의 META로부터 추출 된 정보 (INFORMATION_SCHEMA)
내 조리법에서보세요. 그것은 기능과 트리거를 읽습니다. 그것은 행 정보에 기초한다 : PostgreSQL의 META로부터 추출 된 정보 (INFORMATION_SCHEMA)
-
==============================
8.ALTER의 기능을 참조 할 때 필요한 함수의 인수의 형태를 입수 - oldevectortypes을 사용하여 잘 날 위해 일했습니다.
ALTER의 기능을 참조 할 때 필요한 함수의 인수의 형태를 입수 - oldevectortypes을 사용하여 잘 날 위해 일했습니다.
내가 PostgreSQL의에서 특정 스키마의 데이터베이스에 저장된 모든 기능의 목록을 얻을 수있는 방법을 참조하십시오?
-
==============================
9.아래 쿼리에서 SCHEMA_NAME 및 TABLE_NAME을 변경해주십시오 :
아래 쿼리에서 SCHEMA_NAME 및 TABLE_NAME을 변경해주십시오 :
SELECT n.nspname AS schema_name , p.proname AS function_name , pg_get_function_arguments(p.oid) AS args , pg_get_functiondef(p.oid) AS func_def FROM pg_proc p JOIN pg_namespace n ON n.oid = p.pronamespace AND n.nspname = 'schema_name' AND p.prosrc like '%table_name%'
테이블 이름은 대소 문자를 구분하기 때문에, 그래서 정확한 테이블 이름을 정의해야합니다.
from https://stackoverflow.com/questions/1559008/list-stored-functions-that-reference-a-table-in-postgresql by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 테이블 변경 쿼리에 대한 MySQL의 매우 느린 (0) | 2020.07.21 |
---|---|
[SQL] 어떻게 테이블의 각 외래 키 ID의 인스턴스의 수를 계산하려면? (0) | 2020.07.21 |
[SQL] 포스트 그레스에서 (인덱스 포함) 테이블을 복사 (0) | 2020.07.21 |
[SQL] 주 번호에서 일주일의 시작 날짜와 주 종료 날짜를 가져옵니다 (0) | 2020.07.21 |
[SQL] SQLite는 - 문자열의 일부를 대체 (0) | 2020.07.21 |