Databases Reference
In-Depth Information
explizit angeben können. Wie bei der
delete
-Anweisung gibt es auch hier die
folgende Möglichkeit:
pid int references personen on update restrict
Die referenzielle Integrität wird dann erst nach der Ausführung der
update
-
Anweisung geprüft. Wenn wir also jetzt mit
update personen set id=id-1
alle Datensätze der Tabelle
personen
ändern wollen, dann ist die referenzielle
Integrität nach der Änderung des Datensatzes mit
id=0
auf
id=-1
verletzt, da
ein Datensatz mit
id=0
von der Tabelle
spielkarten
referenziert wird. Nach
der Änderung des zweiten Datensatzes haben wir den Datenbestand aus der fol-
genden Tabelle, und die Welt ist wieder in Ordnung.
id
name
-1
Donald
0
Mickey
Auch wenn sie gelegentlich ganz praktisch ist, wird die Komponente
restrict
nicht von allen RDBMS unterstützt. In H2 wird beispielsweise kein Unterschied
zwischen
restrict
und
no action
gemacht: Beide Fälle werden wie
no
action
behandelt.
Auch bei der
on update
-Anweisung gibt es selbstverständlich die beiden Op-
tionen
on update set null
und
on update set default
5.16
Datentypen
Zu jeder Spalte gehört neben ihrem Namen auch ein Datentyp. Hier bietet der
SQL-Standard eine Vielzahl an Typen, die von den RDBMS-Herstellern noch um
eigene Typen ergänzt wird. Seit SQL3 gibt es zudem die Möglichkeit, dass An-
wender ihre eigenen Datentypen definieren. Diese werden auch als UDTs (User
Defined Types) bezeichnet. Hier beschreiben wir die gängigsten SQL-Typen mit
ihren Besonderheiten. Sie lassen sich in die folgenden Klassen einteilen:
Texte
Zahlen