

# RDS for PostgreSQL용 이벤트 트리거
<a name="PostgreSQL.Concepts.General.FeatureSupport.EventTriggers"></a>

현재 모든 PostgreSQL 버전은 이벤트 트리거를 지원하며 사용 가능한 모든 RDS for PostgreSQL 버전도 지원합니다. 기본 사용자 계정(기본값, `postgres`)을 사용하여 이벤트 트리거를 생성, 수정, 이름 변경 및 삭제할 수 있습니다. 이벤트 트리거는 DB 인스턴스 레벨에서 수행되므로 인스턴스에 대한 모든 데이터베이스에 적용될 수 있습니다.

예를 들어 다음 코드는 모든 데이터 정의 언어(DDL) 명령의 끝에 현재 사용자를 인쇄하는 이벤트 트리거를 생성합니다.

```
CREATE OR REPLACE FUNCTION raise_notice_func()
    RETURNS event_trigger
    LANGUAGE plpgsql AS
$$
BEGIN
    RAISE NOTICE 'In trigger function: %', current_user;
END;
$$;

CREATE EVENT TRIGGER event_trigger_1 
    ON ddl_command_end
EXECUTE PROCEDURE raise_notice_func();
```

PostgreSQL 이벤트 트리거에 대한 자세한 내용은 PostgreSQL 문서의 [Event Triggers](https://www.postgresql.org/docs/current/static/event-triggers.html) 단원을 참조하세요.

Amazon RDS에서 PostgreSQL 이벤트 트리거를 사용하는 데 대한 몇 가지 제한 사항이 있습니다. 여기에는 다음이 포함됩니다.
+ 읽기 전용 복제본에 대한 이벤트 트리거를 생성할 수 없지만, 읽기 전용 복제 원본에 대한 이벤트 트리거는 생성할 수 있습니다. 그러면 이벤트 트리거가 읽기 전용 복제본으로 복사됩니다. 읽기 전용 복제본으로 복사된 이벤트 트리거는 변경 내용이 원본에서 푸시되더라도 읽기 전용 복제본에서 발생하지 않습니다. 하지만 읽기 전용 복제본이 승격되면 데이터베이스 작업이 있을 때 기존 이벤트 트리거가 발생합니다.
+ 이벤트 트리거를 사용하는 PostgreSQL DB 인스턴스로의 메이저 버전 업그레이드를 수행하려면 인스턴스를 업그레이드하기 전에 이벤트 트리거를 삭제해야 합니다.