sql - postgresql create trigger on materialized view -
sql - postgresql create trigger on materialized view -
i have field (produkt) in 1 table references view (owoce).
-- see definition of 'owoce' below foreign key (produkt) references owoce(nazwa) on delete restrict it's forbidden in postgresql (9.3), decided create materialized view instead (it's improve - faster- in case). it's said materialized views can used ordinary tables.
my used ordinary view had trigger modified underlying table (see below), when alter view materialized got error:
'komplety' not table nor view
in oracle it's possible create trigger on materialized views (materialized view trigger?), , postgresql 9.3? maybe there other possibility create reference field view? i'd prefer utilize standar view in case.
sorry mixing languages in code, gui straight uses table names.
create materialized view komplety select nazwa, klient produkty komplet = true; create or replace function update_view_komplety() returns trigger language plpgsql $function$ begin if tg_op = 'insert' insert produkty(komplet,nazwa,klient,jm) values(true,new.nazwa,new.klient,'kpl.'); homecoming new; elsif tg_op = 'update' update produkty set nazwa=new.nazwa, klient=new.klient nazwa=old.nazwa , klient=old.klient , komplet=true; homecoming new; elsif tg_op = 'delete' delete produkty nazwa=old.nazwa , klient=old.klient , komplet=true; homecoming null; end if; homecoming new; end; $function$; create trigger update_view_komplety_trig instead of insert or update or delete on komplety each row execute procedure update_view_komplety();
i didn't find documentation says, "you can't create trigger on materialized view."
nevertheless, appears materialized view isn't view in sense need be. example, trying drop materialized view raises error.
error: "komplety" not view hint: utilize drop materialized view remove materialized view.i think lines current docs create trigger.
the name (optionally schema-qualified) of table or view trigger for.
note doesn't "table or view or materialized view".
you can write trigger view work of foreign key constraint you'd prefer use.
sql postgresql view materialized-views triggers
Comments
Post a Comment