Databases Reference
In-Depth Information
15.3
Änderungen in Views
In diesem Abschnitt werden wir feststellen, dass den Views trotz all ihrer Vortei-
le enge Grenzen gesetzt sind, sobald wir sie in anderen DML-Anweisungen als
select nutzen. Grundsätzlich können wir die Anweisungen insert , update
und delete auch auf Views anwenden. Das RDBMS versucht dann geeignete
Anweisungen auf die an der Definition der View beteiligten Tabellen zu generie-
ren 2 . Wenn in der View
create view billigalben as
select * from alben
where preis<5.00
die Tabelle alben aus Listing 15.1 beteiligt ist, werden die folgenden Anweisun-
gen problemlos ausgeführt:
insert into billigalben
values('Asterix', 11,'Asterix und der Afernerschild',3.50,1972);
update billigalben
set titel='Asterix und der Avernerschild' where band=11;
delete from billigalben where reihe='Asterix' and band=11;
Wir sollten aber überrascht sein, dass das RDBMS eine Anweisung wie
Listing 15.6: insert in eine View
insert into billigalben
values('Asterix',34,'Asterix&Obelix feiern Geburtstag',10.00,2009);
fehlerfrei ausführt. Der Datensatz genügt nicht dem Prädikat
preis<5.0
der definierenden select -Anweisung der View und wird bei einem select auf
die View billigalben gar nicht gefunden. Ein ähnliches Phänomen ergibt sich
für
Listing 15.7: update einer View
update billigalben set preis=5.00
Ein anschließender select auf die View liefert uns keinen einzigen Datensatz
mehr! Tatsächlich überprüft das RDBMS nicht, ob
2 Änderungen sind auch für Views im Standard vorgesehen, sind aber nicht in Systemen wie H2 im-
plementiert. Die Beispiele für Änderungen wurden in diesem Kapitel mit dem RDBMS IBM Informix
getestet.
 
Search WWH ::




Custom Search