Listing 7: Views with triggers.
CREATE VIEW above_average AS SELECT projectname_full, rating FROM project WHERE rating > (SELECT AVG(rating) FROM project) ORDER BY rating DESC; -- Make the view updatable according to following trigger CREATE TRIGGER on_update_above_average INSTEAD OF UPDATE ON above_average FOR EACH ROW BEGIN UPDATE project SET rating=new.rating WHERE projectname_full=new.projectname_full; END -- Now the following update to the view will work: UPDATE above_average SET rating=10 WHERE projectname_full='Gentoo Linux';