

# 适用于 RDS for PostgreSQL 的事件触发条件
<a name="PostgreSQL.Concepts.General.FeatureSupport.EventTriggers"></a>

PostgreSQL 的所有当前版本都支持事件触发条件，RDS for PostgreSQL 的所有可用版本也支持事件触发条件。可以使用主用户账户（默认：`postgres`）创建、修改、重命名和删除事件触发条件。事件触发器位于数据库实例级别，因此，它们可应用于实例上的所有数据库。

例如，以下代码创建在每个数据定义语言 (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 文档中的[事件触发器](https://www.postgresql.org/docs/current/static/event-triggers.html)。

在 Amazon RDS 上使用 PostgreSQL 事件触发器存在多个限制。这些功能包括：
+ 您不能在只读副本上创建事件触发器。不过，您可以在只读副本源上创建事件触发器。然后，事件触发器复制到只读副本。从源推送更改时，不会触发只读副本上的事件触发器。不过，如果提升只读副本，则当数据库发生操作时将触发现有事件触发器。
+ 要将主要版本升级到使用事件触发器的 PostgreSQL 数据库实例，请确保在升级该实例之前删除事件触发器。