psql로 트리거의 내용을 어떻게 표시 할 수 있습니까?


13

로 트리거를 나열 할 수 있다는 것을 알고 있습니다 \dft. 그러나 하나의 구체적인 방아쇠를 어떻게 볼 수 있습니까? 트리거가 실행되는 이벤트, 실행되는 기능 등의 세부 정보를 알고 싶습니다.

답변:


24

알았어, 나 스스로 알아 냈어

이 명령 \dft은 트리거 자체를 보여주지 않으며 (생각했던 것처럼) 모든 트리거 기능 (반환 유형 트리거)을 보여줍니다.

트리거를 볼 수 있도록 \dS <tablename>이 테이블의 열뿐만 아니라이 테이블에 정의 된 모든 트리거도 표시됩니다.

트리거 기능 (또는 모든 기능)의 소스를 표시하려면을 사용하십시오 \df+ <functionname>.


1
보다 편리한 읽기를 위해서는 \ ef <function_name>을 사용하십시오.
Brain90

7

psql 명령에 액세스 할 수없는 경우에도 다음을 사용할 수 있습니다.

select pg_get_functiondef('functionname'::regproc);

2

다음을 시도해 볼 수 있습니다.

SELECT event_object_table,trigger_name,event_manipulation,action_statement,action_timing FROM information_schema.triggers ORDER BY event_object_table,event_manipulation

또는 다음과 같이 'testtable'이라는 테이블의 트리거를 표시 할 수 있습니다.

SELECT event_object_table,trigger_name,event_manipulation,action_statement,action_timing FROM information_schema.triggers WHERE event_object_table='testtable' ORDER BY event_object_table,event_manipulation
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.