Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| Both sides previous revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
|
views [2016/01/08 17:09] chorn |
views [2016/01/08 00:00] (aktuell) |
||
|---|---|---|---|
| Zeile 89: | Zeile 89: | ||
| <code sql> | <code sql> | ||
| create view highSalery as | create view highSalery as | ||
| - | select p.*, count(o.asin) as sold, count(o.asin) * price as total | + | select |
| + | p.*, | ||
| + | count(o.asin) as sold, | ||
| + | count(o.asin) * price as total | ||
| from products p | from products p | ||
| left join orders o using(asin) | left join orders o using(asin) | ||
| Zeile 121: | Zeile 124: | ||
| Um eine Materialized View anzulegen braucht man nur das entsprechende Schlüsselwort voranzustellen, z.B.: | Um eine Materialized View anzulegen braucht man nur das entsprechende Schlüsselwort voranzustellen, z.B.: | ||
| + | <code sql> | ||
| create materialized view recentOrders as ... | create materialized view recentOrders as ... | ||
| + | </code> | ||
| + | |||
| + | danach kann man die View durch beliebige Trigger auf involvierte Relationen aktualisieren | ||
| + | |||
| + | <code sql> | ||
| + | CREATE TRIGGER materialize after insert or update or delete on orders EXECUTE PROCEDURE materialize(); | ||
| + | </code> | ||