Laste ned presentasjonen
Presentasjon lastes. Vennligst vent
PublisertØrnulf Thoresen Endret for 9 år siden
1
Instead-of-trigger Faglig forum
2
Instead-of-trigger Problem: En har et VIEW som består av mange JOINs. Komplekst å oppdatere alle tabellene som inngår. Løsning: Oppdatere VIEW direkte Hvordan: INSTEAD-OF-TRIGGER
3
Instead-of-trigger Opprinnelig VIEW: CREATE OR REPLACE VIEW AS SELECT * from t1 … INNER JOIN t2 … LEFT OUTER JOIN t3 …
4
Instead-of-trigger Problem: Oppdatere mange tabeller, helst med transaksjonskontroll: BEGIN UPDATE t1 SET… UPDATE t2 SET… UPDATE t3 SET… END; (COMMIT;)
5
Instead-of-trigger CREATE OR REPLACE TRIGGER name INSTEAD OF verb_list ON view_name DECLARE … BEGIN … END; /
6
Instead-of-trigger UPDATE mitt_view SET col1 = ’test’, col2 = ’foo’ WHERE id = 3; ----------------------------------------------------------------------- CREATE OR REPLACE TRIGGER min_trigger INSTEAD OF UPDATE ON mitt_view BEGIN UPDATE t1 SET col1 = :NEW.col1 WHERE id = :NEW.id; UPDATE t2 SET col2 = :NEW.col2 WHERE id = :NEW.id; END; /
7
Instead-of-trigger En kan lage én og samme trigger som støtter alle CRUD-operasjoner COMMIT/ROLLBACK må ikke forekomme inne i triggeren Feiler én update-setning, feiler alle. Støttes ikke i PostgreSQLs triggere (må bruke INSTEAD RULE i stedet)
8
Instead-of-trigger CREATE OR REPLACE TRIGGER min_trigger INSTEAD OF INSERT OR UPDATE OR DELETE ON mitt_view BEGIN IF INSERTING THEN … END IF; IF UPDATING THEN … END IF; IF DELETING THEN … END IF; END; /
Liknende presentasjoner
© 2024 SlidePlayer.no Inc.
All rights reserved.