Desencadenadores de eventos para RDS for PostgreSQL
Todas las versiones actuales de PostgreSQL admiten desencadenadores de eventos, al igual que todas las versiones disponibles de RDS for PostgreSQL. Puede utilizar la cuenta de usuario principal (postgres
, predeterminada) para crear, modificar, renombrar y eliminar desencadenadores de eventos. Los disparadores de eventos están en el nivel de la instancia de base de datos, de modo que se pueden aplicar a todas las bases de datos de una instancia.
Por ejemplo, el siguiente código crea un desencadenador de evento que imprime el usuario actual al final de cada comando de lenguaje de definición de datos (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();
Para obtener más información acerca de los desencadenadores de eventos de PostgreSQL, consulte Desencadenadores de eventos
Hay varias limitaciones que afectan al uso de los disparadores de eventos de PostgreSQL en Amazon RDS. Estos incluyen los siguientes:
-
No puede crear desencadenadores de eventos en réplicas de lectura. Puede, no obstante, crear desencadenadores de eventos en un origen de réplica de lectura. Los disparadores de eventos se copian a continuación en la réplica de lectura. Los desencadenadores de eventos en la réplica de lectura no se activan en la réplica de lectura cuando los cambios se envían desde el origen. No obstante, si se promueve la réplica de lectura, los disparadores de eventos existentes se activarán cuando se produzcan operaciones en la base de datos.
-
Para realizar una actualización de versión principal en una instancia de base de datos de PostgreSQL que use desencadenadores de eventos, debe eliminar los desencadenadores de eventos antes de actualizar la instancia.