

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 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 資料庫執行個體執行主要版本升級，就必須在升級執行個體之前刪除事件觸發程序。