¿Cómo obtener el nombre de la tabla alterada en un desencadenador de evento de Postgres?
en unpostgres
base de datos, tiene tablabase1
esa es la tabla base para verview1
.
si una columna enbase1
es creado, eliminado o renombrado, me gustaría recrear la vistaview1
con un disparador ddl.
create event trigger base1_views
on ddl_command_end
when tag in( 'ALTER TABLE' )
execute procedure base1_views_fn();
create function base1_views_fn() returns void as $
declare
buf varchar;
begin
-- is table being altered = 'base'?
-- add, drop or renaming a column?
buf = 'drop view view1';
execute buf;
buf = 'create view view1 as select * from base1 where ...';
execute buf;
end;
$ language 'plpgsql';
dentro de la funciónbase1_views_fn()
, ¿cómo obtenemos el nombre de la tabla y si estamos cambiando las columnas?